La parte più difficile Definire un obiettivo per la classificazione

La sfida più difficile definire un obiettivo di classificazione

Non è etichettato come ‘Target_Variable’ nel tuo Database di Produzione!

Foto di Kenny Eliason su Unsplash

Cosa è una Variabile di Destinazione?

Una variabile di destinazione è la variabile o metrica che stai cercando di prevedere con un modello di machine learning supervisionato. Spesso viene anche chiamata variabile dipendente, variabile di risposta, variabile ‘y’ o semplicemente output del modello.

Indipendentemente dal termine che preferisci (o che ti è stato imposto di utilizzare durante il corso di statistica), questa è la variabile più importante in qualsiasi progetto di modellazione supervisionata. Mentre questo è ovvio per la maggior parte delle persone che hanno esperienza di machine learning, vale la pena ribadire il motivo agli inesperti.

Da un punto di vista tecnico, il tipo di dati della tua variabile di destinazione determina il tipo di progetto di modellazione su cui stai lavorando. Le variabili di destinazione numeriche sono proprie dei modelli di regressione, mentre le variabili categoriche indicano che stai lavorando su un modello di classificazione.

Un Modello di Regressione con una Variabile di Destinazione Numerica - immagine dal mio corso di regressione

Ma ancora più importante del tipo di modello, la tua variabile di destinazione è il motivo principale per cui stai costruendo un modello.

Un Albero Decisionale (molto semplice) che prevede se un cliente churnerà (smetterà di essere un cliente) - dal corso di classificazione di Maven

Definire una Variabile di Destinazione per la Classificazione

In apparenza, definire una variabile di destinazione per la classificazione potrebbe sembrare facile. Ma la tua opinione potrebbe cambiare se ti viene chiesto di costruire un modello per dati che non sono mai stati modellati in precedenza.

Quando le persone iniziano a imparare il machine learning, di solito vengono forniti dataset relativamente puliti con 0 e 1 chiaramente definiti che possono essere utilizzati per la modellazione di classificazione. Ma nella mia esperienza, è estremamente raro trovare una colonna in un database relazionale che si allinei perfettamente a come sarà la tua variabile di destinazione finale.

Certo, questo ha perfettamente senso nel contesto dell’apprendimento degli algoritmi di machine learning, ma sicuramente mi sono svegliato bruscamente quando ho visto la query SQL che ha generato il primo dataset di modellazione “vero” su cui ho avuto l’opportunità di lavorare nel mio primo lavoro da data scientist.

Esaminiamo alcuni esempi dei tipi di trasformazioni che potremmo dover apportare ai nostri dati per generare una variabile di destinazione, nel contesto del churn dei clienti per un prodotto di abbonamento. Questo potrebbe essere una polizza assicurativa, un abbonamento Netflix, qualsiasi cosa. Ho creato dei dati falsi che simulano dati che ho visto in produzione, ma perdonami se non corrispondono a come un ingegnere dei dati strutturerebbe queste tabelle.

Esempio 1: Data di Cancellazione

Non c’è un chiaro 1 o 0 che indica se un cliente ha churned (l’abbonamento è terminato qui), ma in questo esempio, è abbastanza semplice creare uno. Se subscription_end_date è null, potremmo supporre che il cliente sia ancora attivo. Quindi possiamo applicare una logica di base per assegnare un 1 se la data di fine abbonamento non è nulla e un 0 se lo è, in modo che la classe positiva della nostra variabile di destinazione sia un churner.

Abbastanza facile. Adesso vediamo un esempio più complesso.

Esempio 2: Data di Rinnovo

Immaginiamo che abbiamo un’altra colonna nella nostra tabella di abbonamento. Se un cliente diventa nuovamente un abbonato pagante, abbiamo una colonna per registrare quando è successo ciò.

Il nostro primo cliente che ha terminato l’abbonamento non è mai tornato, quindi possiamo dire con sicurezza che ha abbandonato.

Ma cosa dire del cliente 4? Si è riabbonato un giorno dopo la fine del suo abbonamento. Potrebbe essere che ha avuto un abbonamento mensile che è terminato, o che ha avuto una scadenza della carta di credito, e non appena si è reso conto di questo, ha riattivato il suo abbonamento. Un’unica giornata di interruzione dell’iscrizione è sufficiente per dire che il cliente ha abbandonato? Probabilmente no. Ma cosa dire di una interruzione di 7 giorni o 30 giorni?

Il cliente 5 si è riabbonato, ma non è stato un cliente per più di un anno. Probabilmente possiamo dire che ha abbandonato, ma è qui che è fondamentale parlare con i tuoi stakeholder ed esperti in materia. Potremmo arrivare a una logica che definisce un abbandono come qualcuno che è stato inattivo per un periodo di oltre 30 giorni, ottenendo il seguente risultato:

Queste non sono differenze banali. La definizione del tuo obiettivo può avere impatti a valle su quali funzionalità prevedono con successo il tuo obiettivo, sull’accuratezza generale del tuo modello e, in definitiva, sul successo del tuo progetto.

Ad esempio, se il cliente 4 era un utente molto attivo della nostra piattaforma (si è accorto immediatamente di aver perso l’accesso), ma gli altri due non lo erano, le funzionalità predittive che si correlano all’abbandono verranno ridimensionate dalla nostra scadente definizione dell’obiettivo.

Ho considerato di aggiungere più esempi, ma penso che il punto più ampio sia ben illustrato da questi due. Come spunto di riflessione, la creazione dell’obiettivo è ancora più suscettibile di errori quando abbiamo tabelle transazionali che hanno una riga per ogni pagamento mensile, tipi e durate di abbonamento diversi, clienti che hanno ottenuto un abbonamento gratuito a causa di una promozione (forse vorremmo eliminarli del tutto) e altro ancora.

Un Po’ di Consigli

Il tuo obiettivo del modello non è semplicemente un 0 o 1, rappresenta l’unità fondamentale di successo per il tuo progetto di modellazione di classificazione. Pertanto, ho alcuni consigli generali su come affrontare la definizione della variabile obiettivo nel tuo prossimo progetto:

  • La tua variabile obiettivo probabilmente non sarà definita in modo chiaro in una tabella
  • Prenditi del tempo, e intendo diversi giorni, se non settimane, per pensare in modo critico a come la variabile obiettivo possa essere definita dai dati a tua disposizione e come tale definizione sia correlata agli obiettivi aziendali. Questo compito raramente è banale, ed è molto meglio dedicare tempo ed energie fin dall’inizio anziché dover cambiare la definizione in seguito.
  • La tua variabile obiettivo potrebbe non avere una definizione concepita in modo concorde all’interno della tua organizzazione. “Abbandono” può essere definito in molti modi e potresti non raggiungere una definizione perfetta. Ma è importante ottenere un consenso su come tu, come modellatore, la definisci, parlando con gli stakeholder. Almeno, stai coprendo le tue spalle nel caso in cui si scopra che la definizione deve cambiare, e nel migliore dei casi, hai gettato le basi per la costruzione di un modello di successo.

Grazie per aver dedicato del tempo a leggere i miei pensieri – so che probabilmente non sono rivoluzionari per gli scienziati dei dati esperti, ma spero che le persone nuove in questo campo acquisiscano consapevolezza delle lacune tra l’aula e il lavoro e capiscano che non bisogna dare per scontate le variabili obiettivo – è tentatore muoversi il più velocemente possibile verso la modellazione, ma in tal caso potresti mancare il… bersaglio.

Se ti è piaciuto questo articolo, seguimi! Scrivo regolarmente su argomenti come Python, Pandas e la transizione dall’analisi dei dati alla scienza dei dati. Ho anche corsi su questi argomenti disponibili sulla piattaforma Maven Analytics e Udemy – mi piacerebbe vederti lì!