Big Data Analytics - Definizione del problema
Attraverso questo tutorial, svilupperemo un progetto. Ogni capitolo successivo di questo tutorial tratta una parte del progetto più ampio nella sezione del mini-progetto. Si pensa che questa sia una sezione di tutorial applicata che fornirà l'esposizione a un problema del mondo reale. In questo caso, inizieremo con la definizione del problema del progetto.
descrizione del progetto
L'obiettivo di questo progetto sarebbe sviluppare un modello di apprendimento automatico per prevedere lo stipendio orario delle persone che utilizzano il testo del proprio curriculum vitae (CV) come input.
Utilizzando il framework definito sopra, è semplice definire il problema. Possiamo definire X = {x 1 , x 2 ,…, x n } come i CV degli utenti, dove ogni caratteristica può essere, nel modo più semplice possibile, il numero di volte che questa parola appare. Quindi la risposta ha un valore reale, stiamo cercando di prevedere lo stipendio orario degli individui in dollari.
Queste due considerazioni sono sufficienti per concludere che il problema presentato può essere risolto con un algoritmo di regressione supervisionato.
Definizione del problema
Problem Definitionè probabilmente una delle fasi più complesse e pesantemente trascurate nella pipeline di analisi dei big data. Per definire il problema che un prodotto di dati risolverebbe, l'esperienza è obbligatoria. La maggior parte degli aspiranti al data scientist ha poca o nessuna esperienza in questa fase.
La maggior parte dei problemi relativi ai big data può essere classificata nei seguenti modi:
- Classificazione controllata
- Regressione controllata
- Apprendimento senza supervisione
- Imparare a classificarsi
Vediamo ora di saperne di più su questi quattro concetti.
Classificazione supervisionata
Data una matrice di caratteristiche X = {x 1 , x 2 , ..., x n } sviluppiamo un modello M per prevedere classi differenti definite come y = {c 1 , c 2 , ..., c n } . Ad esempio: dati i dati transazionali dei clienti in una compagnia di assicurazioni, è possibile sviluppare un modello che prevede se un cliente si abbandona o no. Quest'ultimo è un problema di classificazione binaria, in cui ci sono due classi o variabili target: churn e non churn.
Altri problemi riguardano la previsione di più di una classe, potremmo essere interessati a fare il riconoscimento delle cifre, quindi il vettore di risposta sarebbe definito come: y = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} , un modello all'avanguardia sarebbe la rete neurale convoluzionale e la matrice delle caratteristiche sarebbe definita come i pixel dell'immagine.
Regressione controllata
In questo caso, la definizione del problema è piuttosto simile all'esempio precedente; la differenza si basa sulla risposta. In un problema di regressione, la risposta y ∈ ℜ, significa che la risposta ha un valore reale. Ad esempio, possiamo sviluppare un modello per prevedere lo stipendio orario delle persone dato il corpus del loro CV.
Apprendimento senza supervisione
La direzione è spesso assetata di nuove intuizioni. I modelli di segmentazione possono fornire questa visione affinché il reparto marketing possa sviluppare prodotti per segmenti diversi. Un buon approccio per sviluppare un modello di segmentazione, piuttosto che pensare ad algoritmi, consiste nel selezionare le caratteristiche che sono rilevanti per la segmentazione che si desidera.
Ad esempio, in una società di telecomunicazioni, è interessante segmentare i clienti in base al loro utilizzo del cellulare. Ciò comporterebbe ignorare le caratteristiche che non hanno nulla a che fare con l'obiettivo di segmentazione e includere solo quelle che lo fanno. In questo caso, si tratterebbe di selezionare funzioni come il numero di SMS utilizzati in un mese, il numero di minuti in entrata e in uscita, ecc.
Imparare a rango
Questo problema può essere considerato come un problema di regressione, ma ha caratteristiche particolari e merita un trattamento a parte. Il problema implica, data una raccolta di documenti, che cerchiamo di trovare l'ordinamento più pertinente data una query. Per sviluppare un algoritmo di apprendimento supervisionato, è necessario etichettare quanto sia rilevante un ordine, data una query.
È importante notare che per sviluppare un algoritmo di apprendimento supervisionato, è necessario etichettare i dati di addestramento. Ciò significa che per addestrare un modello che, ad esempio, riconoscerà le cifre da un'immagine, è necessario etichettare manualmente una quantità significativa di esempi. Esistono servizi Web che possono accelerare questo processo e sono comunemente utilizzati per questa attività, come Amazon Mechanical Turk. È dimostrato che gli algoritmi di apprendimento migliorano le loro prestazioni quando vengono forniti più dati, quindi etichettare una discreta quantità di esempi è praticamente obbligatorio nell'apprendimento supervisionato.