Preparazione del dataset per il training
Si addestra un dataset per rispondere alla propria domanda di machine learning. Il dataset di addestramento include una colonna per ogni funzionalità e una colonna che contiene la destinazione. Gli algoritmi di machine learning apprendono modelli generali da queste righe di dati per generare un modello in grado di prevedere la destinazione.
Per rendere il dataset pronto per il machine learning, è necessario comprendere i propri dati e raccogliere i punti dati necessari. Potrebbe anche essere necessario eseguire una trasformazione dati su alcuni di essi e rimuovere i dati non rilevanti per il proprio caso d'uso.
Quali dati si dovrebbero raccogliere?
Definire con precisione la propria domanda di machine learning e decidere esattamente cosa deve essere aggregato per affrontare tale domanda:
-
Se si desidera prevedere quali clienti abbandoneranno, è necessario aggregare un dataset in cui ogni riga rappresenta un cliente, ogni colonna di funzionalità rappresenta una funzionalità che descrive quel cliente e la colonna di destinazione indica se quel cliente ha abbandonato in un determinato periodo di tempo.
-
Se si desidera prevedere quali saranno le vendite per un determinato mese e regione, è necessario aggregare un dataset in cui ogni riga rappresenta un determinato mese per una determinata regione, ogni colonna di funzionalità rappresenta una funzionalità che descrive l'attività di quel mese in quella regione e la colonna di destinazione è il ricavo delle vendite per quella regione in quel mese.
Cercare di capire quali elementi potrebbero influenzare la destinazione e verificare se tali dati possono essere raccolti. Ricordare che gli algoritmi predittivi possono identificare solo i modelli che sono presenti per essere trovati. Forse è necessario raccogliere o creare funzionalità aggiuntive per estrarre ulteriori informazioni?
È inoltre necessario determinare quanti dati si devono accumulare prima di poter effettuare previsioni accurate. Quanto tempo ci vuole prima che l'evento diventi rappresentativo? Considerare i seguenti esempi:
-
I clienti devono essere membri da 60 giorni prima di poter prevedere se abbandoneranno entro il 90° giorno.
-
Il costo dei sinistri assicurativi non sarà noto per alcuni mesi, quindi è possibile escludere i sinistri con meno di sei mesi.
Distinguere tra dati varianti nel tempo e non varianti nel tempo. Con i dati varianti nel tempo, i dati hanno un timestamp per essere aggregati in modo appropriato?
I dati saranno disponibili al momento della previsione?
Assicurarsi che tutte le funzionalità incluse nel dataset di addestramento siano disponibili anche per le previsioni future. È un errore comune addestrare il modello su funzionalità disponibili per i dati storici, ma che non saranno disponibili al momento in cui si effettuerà una previsione in futuro. Quando si effettuano previsioni su nuovi dati, l'algoritmo di machine learning deve avere valori per tutte le funzionalità che erano disponibili nel dataset di addestramento.
Avere più dati è meglio?
Dimensione del campione
Un volume maggiore di dati tende a produrre modelli più affidabili. Qualsiasi punto dati rilevante aggiuntivo sarà d'aiuto, che si tratti di osservazioni nuove o storiche.
Numero di funzionalità
Può essere allettante includere ogni possibile variabile nel modello, indipendentemente dalla rilevanza per il risultato desiderato. In genere, più semplice è meglio. Generalmente è preferibile utilizzare un numero inferiore di funzionalità nel modello.
Quando ci sono più funzionalità, può esserci un rischio maggiore di nascondere potenzialmente la vera relazione sottostante che si desidera scoprire. Il modello predittivo può utilizzare tutte le funzionalità per elaborare una serie di regole complicate che funzionano bene con i dati utilizzati per addestrare il modello. Tuttavia, la destinazione prevista potrebbe in realtà essere influenzata solo da una o due funzionalità. Il modello potrebbe non essere in grado di generalizzare su dati al di fuori di quelli utilizzati nell'addestramento, il che comporterebbe scarse prestazioni predittive se applicato a nuovi dati.
Overfitting
Overfitting significa che un modello è eccessivamente complesso e, di conseguenza, inaffidabile per la previsione di nuovi dati. L'overfitting tende a verificarsi quando ci sono troppe funzionalità rispetto al numero di punti dati disponibili. Ad esempio, si potrebbero avere solo 50 righe di dati e 100 colonne di funzionalità nel dataset.
I dati di addestramento sono rilevanti?
Un algoritmo di machine learning trova modelli nei dati che gli vengono forniti e utilizza tali modelli per effettuare previsioni sui dati in futuro. Quando si effettuano previsioni su nuovi dati, si presuppone che siano simili ai dati di addestramento. Per questo motivo, è importante che il dataset di addestramento assomigli statisticamente ai dati su cui si effettueranno le previsioni.
Se il mercato o l'attività sono cambiati in modo significativo rispetto a quanto descritto dal dataset di addestramento, probabilmente si sta utilizzando un dataset obsoleto che porterà a previsioni imprecise. Potrebbe essere necessario creare un nuovo dataset di addestramento e utilizzare solo i dati raccolti dopo che si è verificato il cambiamento.
Considerare l'esempio sulle previsioni di vendita in Comprendere il machine learning. Supponiamo di aver fornito al nostro algoritmo dati che rappresentavano la spesa pubblicitaria in televisione, radio e giornali, nonché i ricavi delle vendite per i trimestri aziendali storici. Tuttavia, i dati sono stati raccolti negli anni '80. Ora non pubblicizziamo più quel prodotto alla radio e lo pubblicizziamo quasi esclusivamente online. Il nostro algoritmo addestrato avrebbe prestazioni scarse nel prevedere le vendite per il trimestre aziendale in corso perché i dati di addestramento non sono rappresentativi dell'attività attuale.
Esplorare i dati
Utilizzare la propria conoscenza aziendale per comprendere e convalidare i dati. Se i dati non sono in linea con le proprie ipotesi, potrebbe significare che ci sono problemi con i dati o che le proprie ipotesi sono errate?
Rimuovere le funzionalità inaffidabili
Considerare l'esclusione di colonne dal dataset in cui:
-
C'è un'alta concentrazione di un valore (bassa cardinalità). Ad esempio, una colonna con i valori "rosso", "verde", "blu" in cui il 90 percento dei valori è "rosso".
-
I valori sono altamente univoci (alta cardinalità).
-
La maggior parte dei valori è nulla.
Gestire le funzionalità correlate
Rimuovere le funzionalità ridondanti, come le funzionalità altamente correlate che forniscono informazioni uguali o molto simili. Considerare la selezione di una singola funzionalità da gruppi che sembrano catturare gli stessi comportamenti nei dati. Cercare di determinare se c'è una funzionalità che guida l'altra.
Sostituire i valori nulli
Esplorare i dati per scoprire se mancano valori in punti dati chiave come la destinazione o le funzionalità chiave. Per utilizzare i valori di una colonna sparsa, è possibile sostituire i valori nulli con "altro" o "sconosciuto". O forse è necessario rivalutare la raccolta dei dati.
Intervallo di destinazione
Osservare la distribuzione dei dati. Se la distribuzione dei dati di destinazione è troppo dispersa rispetto alla dimensione del campione, potrebbe essere difficile trovare alcun modello nei dati.
Qual è l'intervallo dei valori dei dati? Ci sono alcune sfide nella previsione dei valori dei dati al di fuori dell'intervallo. Ulteriori informazioni in Estrapolazione e interpolazione.
Ci sono anomalie nella distribuzione? Asimmetrie, code e forme multimodali nei dati potrebbero richiedere un'ulteriore trasformazione dati o un'ulteriore ingegnerizzazione delle funzionalità. Provare a raggruppare le categorie a basso volume e ad arrotondare o rimuovere le code nelle funzionalità numeriche.
Eliminare gli outlier
Considerare la rimozione delle osservazioni con valori outlier nelle colonne delle funzionalità. Gli outlier possono ostacolare la capacità di un algoritmo di discernere modelli generali nei dati. Potrebbe essere meglio esaminare un sottoinsieme più piccolo di dati che ha una dispersione più ristretta nella colonna di destinazione.
Raggruppamento dei dati
È possibile migliorare i risultati suddividendo i dati in diversi dataset e utilizzandoli per addestrare modelli separati. Basare il raggruppamento dei dati su una o più funzionalità.
Data leakage
Data leakage significa che i dati utilizzati per addestrare un algoritmo di machine learning includono le informazioni che si sta cercando di prevedere.