Preparazione dei dati per l'apprendimento automatico: una guida dettagliata
Pubblicato: 2023-07-07Anni fa, quando Spotify stava lavorando al suo motore di raccomandazione, ha dovuto affrontare sfide legate alla qualità dei dati utilizzati per l'addestramento degli algoritmi di machine learning (ML). Se non avessero deciso di tornare alla fase di preparazione dei dati e investire ulteriori sforzi nella pulizia, normalizzazione e trasformazione dei dati, è probabile che la nostra esperienza di ascolto non sarebbe stata così piacevole.
La preparazione accurata dei dati per ML ha consentito alla piattaforma di streaming di addestrare un potente motore ML che prevede con precisione le preferenze di ascolto degli utenti e offre consigli musicali altamente personalizzati. Spotify ha evitato un errore cruciale che le aziende commettono quando si tratta di preparare i dati per il machine learning: non investire abbastanza sforzi o saltare il palco.
Molte aziende presumono che l'inserimento di grandi volumi di dati in un motore ML sia sufficiente per generare previsioni accurate. La verità è che può portare a una serie di problemi, ad esempio bias algoritmico o scalabilità limitata.
Il successo del machine learning dipende fortemente dai dati. E il triste dato è: tutti i set di dati sono imperfetti. Ecco perché la preparazione dei dati è fondamentale per il machine learning. Aiuta a escludere imprecisioni e distorsioni inerenti ai dati grezzi, in modo che il modello ML risultante generi previsioni più affidabili e accurate.
In questo post del blog, sottolineiamo l'importanza di preparare i dati per il machine learning e condividiamo il nostro approccio alla raccolta, pulizia e trasformazione dei dati. Quindi, se sei nuovo nel machine learning e vuoi assicurarti che la tua iniziativa abbia successo, continua a leggere.
Come preparare i dati per l'apprendimento automatico
Il primo passo per adottare con successo il machine learning è formulare chiaramente il tuo problema aziendale. Non solo assicura che il modello ML che stai costruendo sia in linea con le tue esigenze aziendali, ma ti consente anche di risparmiare tempo e denaro nella preparazione di dati che potrebbero non essere rilevanti.
Inoltre, una chiara dichiarazione del problema rende il modello ML spiegabile (il che significa che gli utenti capiscono come prende le decisioni). È particolarmente importante in settori come l'assistenza sanitaria e la finanza, dove il riciclaggio ha un impatto notevole sulla vita delle persone.
Con il problema aziendale risolto, è il momento di dare il via al lavoro sui dati.
Nel complesso, il processo di preparazione dei dati per il machine learning può essere suddiviso nelle seguenti fasi.
- Raccolta dati
- Pulizia dei dati
- Trasformazione dei dati
- Divisione dei dati
Diamo un'occhiata più da vicino a ciascuno.
Raccolta dati
La preparazione dei dati per il machine learning inizia con la raccolta dei dati. Durante la fase di raccolta dei dati, raccogli i dati per l'addestramento e l'ottimizzazione del futuro modello ML. Così facendo, tieni presente il tipo, il volume e la qualità dei dati: questi fattori determineranno la migliore strategia di preparazione dei dati.
Il machine learning utilizza tre tipi di dati: strutturati, non strutturati e semi-strutturati.
- I dati strutturati sono organizzati in un modo specifico, in genere in un formato tabella o foglio di calcolo. Gli esempi di dati strutturati coprono la gamma di informazioni raccolte da database o sistemi transazionali.
- I dati non strutturati includono immagini, video, registrazioni audio e altre informazioni che non seguono i modelli di dati convenzionali.
- I dati semi-strutturati non seguono un formato di un modello di dati tabulare. Tuttavia, non è completamente disorganizzato, in quanto contiene alcuni elementi strutturali, come tag o metadati che ne facilitano l'interpretazione. Gli esempi includono i dati nei formati XML o JSON.
La struttura dei dati determina l'approccio ottimale per prepararli al machine learning. I dati strutturati, ad esempio, possono essere facilmente organizzati in tabelle e ripuliti tramite la deduplicazione, inserendo i valori mancanti o standardizzando i formati dei dati. Al contrario, l'estrazione di caratteristiche rilevanti da dati non strutturati richiede tecniche più complesse, come l'elaborazione del linguaggio naturale o la visione artificiale.
L'approccio ottimale alla preparazione dei dati per ML è influenzato anche dal volume dei dati di addestramento. Un set di dati di grandi dimensioni può richiedere il campionamento, che comporta la selezione di un sottoinsieme di dati per addestrare un modello a causa di limitazioni computazionali. Uno più piccolo, a sua volta, potrebbe richiedere ai data scientist di adottare ulteriori misure per generare più dati in base ai punti dati esistenti (ne parleremo più avanti).
Anche la qualità dei dati raccolti è fondamentale. L'utilizzo di dati imprecisi o distorti può influire sull'output ML, il che può avere conseguenze significative, soprattutto in settori quali la finanza, l'assistenza sanitaria e la giustizia penale. Esistono tecniche che consentono di correggere i dati per errori e bias. Tuttavia, potrebbero non funzionare su un set di dati intrinsecamente distorto. Una volta che sai cosa rende i dati "buoni", devi decidere come raccoglierli e dove trovarli. Ci sono diverse strategie per questo.
- Raccolta di dati da fonti interne: se disponi di informazioni archiviate nel tuo data warehouse aziendale, puoi utilizzarle per addestrare algoritmi ML. Questi dati potrebbero includere transazioni di vendita, interazioni con i clienti, dati provenienti da piattaforme di social media e dati provenienti da altre fonti.
- Raccolta di dati da fonti esterne: puoi rivolgerti a fonti di dati disponibili pubblicamente, come portali di dati governativi, archivi di dati accademici e comunità di condivisione di dati, come Kaggle, UCI Machine Learning Repository o Google Dataset Search.
- Web scraping: questa tecnica prevede l'estrazione di dati da siti Web utilizzando strumenti automatizzati. Questo approccio può essere utile per raccogliere dati da fonti che non sono accessibili con altri mezzi, come recensioni di prodotti, articoli di notizie e social media.
- Sondaggi: questo approccio può essere utilizzato per raccogliere punti dati specifici da un pubblico di destinazione specifico. È particolarmente utile per raccogliere informazioni sulle preferenze o sul comportamento dell'utente.
A volte, tuttavia, queste strategie non producono dati sufficienti. Quando ciò accade, puoi compensare la mancanza di punti dati con queste tecniche.
- Aumento dei dati: consente di generare più dati da campioni esistenti trasformandoli in vari modi, ad esempio ruotandoli, traslandoli o ridimensionandoli.
- Apprendimento attivo: consente di selezionare il campione di dati più informativo per l'etichettatura da parte di un esperto umano.
- Trasferimento dell'apprendimento: comporta l'utilizzo di algoritmi ML pre-addestrati applicati per risolvere un'attività correlata come punto di partenza per l'addestramento di un nuovo modello ML, seguito dalla messa a punto del nuovo modello su nuovi dati.
- Condivisione collaborativa dei dati: implica la collaborazione con altri ricercatori e organizzazioni per raccogliere e condividere dati per un obiettivo comune.
Pulizia dei dati
Il prossimo passo da compiere per preparare i dati per ML è pulirli. La pulizia dei dati comporta l'individuazione e la correzione di errori, incoerenze e valori mancanti. Esistono diversi approcci alla pulizia dei dati.
Gestione dei dati mancanti
I valori mancanti sono un problema comune in ML. Può essere gestito mediante imputazione (si pensi: riempire i valori mancanti con dati previsti o stimati), interpolazione (derivando i valori mancanti dai punti dati circostanti) o eliminazione (semplicemente rimuovendo righe o colonne con valori mancanti da un set di dati).
Gestione dei valori anomali
I valori anomali sono punti dati che differiscono in modo significativo dal resto del set di dati. I valori anomali possono verificarsi a causa di errori di misurazione, errori di immissione dei dati o semplicemente perché rappresentano osservazioni insolite o estreme. In un set di dati sugli stipendi dei dipendenti, ad esempio, un valore anomalo può essere un dipendente che guadagna molto di più o di meno rispetto ad altri. I valori anomali possono essere gestiti rimuovendoli, trasformandoli per ridurne l'impatto, winsorizing (pensa: sostituendo i valori estremi con i valori più vicini che rientrano nel normale intervallo di distribuzione) o trattandoli come una classe separata di dati.
Rimozione dei duplicati
Un altro passaggio nel processo di preparazione dei dati per ML è la rimozione dei duplicati. I duplicati non solo distorcono le previsioni ML, ma sprecano anche spazio di archiviazione e aumentano i tempi di elaborazione, soprattutto in set di dati di grandi dimensioni. Per rimuovere i duplicati, i data scientist ricorrono a una varietà di tecniche di identificazione dei duplicati (ad es. corrispondenza esatta, corrispondenza fuzzy, hashing o record linkage). Una volta identificati, possono essere eliminati o uniti. Tuttavia, in set di dati sbilanciati, i duplicati possono essere accolti favorevolmente per ottenere una distribuzione normale.
Gestione di dati irrilevanti
I dati irrilevanti si riferiscono ai dati che non sono utili o applicabili alla risoluzione di un problema. La gestione di dati irrilevanti può aiutare a ridurre il rumore e migliorare l'accuratezza delle previsioni. Per identificare i dati irrilevanti, i team di dati possono ricorrere a tecniche come l'analisi dei componenti principali, l'analisi di correlazione o semplicemente fare affidamento sulla loro conoscenza del dominio. Una volta identificati, tali punti dati vengono rimossi dal set di dati pertinente.
Gestione di dati errati
La preparazione dei dati per l'apprendimento automatico deve includere anche la gestione di dati errati ed errati. Le tecniche comuni per gestire tali dati includono la trasformazione dei dati (modifica dei dati, in modo che soddisfino i criteri stabiliti) o la rimozione totale di punti dati errati.
Gestione dei dati non bilanciati
Un set di dati sbilanciato è un set di dati in cui il numero di punti dati in una classe è significativamente inferiore al numero di punti dati in un'altra classe. Ciò può comportare un modello distorto che dà la priorità alla classe maggioritaria, ignorando la classe minoritaria. Per affrontare il problema, i data team possono ricorrere a tecniche come il ricampionamento (sovracampionamento della classe di minoranza o sottocampionamento della classe di maggioranza per bilanciare la distribuzione dei dati), generazione di dati sintetici (generazione sintetica di punti dati aggiuntivi per la classe di minoranza), costo apprendimento sensibile (assegnando un peso maggiore alla classe di minoranza durante l'addestramento) e apprendimento d'insieme (combinando più modelli addestrati su diversi sottoinsiemi di dati utilizzando algoritmi diversi).
Queste attività aiutano a garantire che i dati di addestramento siano accurati, completi e coerenti. Sebbene sia un grande risultato, non è ancora sufficiente produrre un modello ML affidabile. Pertanto, il passaggio successivo nel percorso di preparazione dei dati per il machine learning consiste nell'assicurarsi che i punti dati nel set di dati di addestramento siano conformi a regole e standard specifici. E quella fase del processo di gestione dei dati viene definita trasformazione dei dati.
Trasformazione dei dati
Durante la fase di trasformazione dei dati, converti i dati grezzi in un formato adatto agli algoritmi ML. Ciò, a sua volta, garantisce prestazioni algoritmiche e accuratezza più elevate.
I nostri esperti nella preparazione dei dati per ML nominano le seguenti tecniche comuni di trasformazione dei dati.
Ridimensionamento
In un set di dati, funzioni diverse possono utilizzare unità di misura diverse. Ad esempio, un set di dati immobiliari può includere le informazioni sul numero di stanze in ogni proprietà (da uno a dieci) e il prezzo (da $ 50.000 a $ 1.000.000). Senza ridimensionamento, è difficile bilanciare l'importanza di entrambe le funzionalità. L'algoritmo potrebbe dare troppa importanza alla caratteristica con valori più grandi - in questo caso, il prezzo - e non abbastanza alla caratteristica con valori apparentemente più piccoli. Il ridimensionamento aiuta a risolvere questo problema trasformando tutti i punti dati in modo da adattarli a un intervallo specificato, in genere compreso tra 0 e 1. Ora puoi confrontare equamente variabili diverse.
Normalizzazione
Un'altra tecnica utilizzata nella preparazione dei dati per ML è la normalizzazione. È simile al ridimensionamento. Tuttavia, mentre il ridimensionamento modifica l'intervallo di un set di dati, la normalizzazione ne modifica la distribuzione.
Codifica
I dati categorici hanno un numero limitato di valori, ad esempio colori, modelli di automobili o specie animali. Poiché gli algoritmi ML in genere funzionano con dati numerici, i dati categorici devono essere codificati per poter essere utilizzati come input. La codifica, quindi, sta per convertire i dati categorici in un formato numerico. Esistono diverse tecniche di codifica tra cui scegliere, tra cui la codifica one-hot, la codifica ordinale e la codifica etichetta.
Discretizzazione
La discretizzazione è un approccio alla preparazione dei dati per ML che consente di trasformare variabili continue, come tempo, temperatura o peso, in variabili discrete. Considera un set di dati che contiene informazioni sull'altezza delle persone. L'altezza di ogni persona può essere misurata come variabile continua in piedi o centimetri. Tuttavia, per alcuni algoritmi ML, potrebbe essere necessario discretizzare questi dati in categorie, come "breve", "medio" e "alto". Questo è esattamente ciò che fa la discretizzazione. Aiuta a semplificare il set di dati di addestramento e a ridurre la complessità del problema. Gli approcci comuni alla discretizzazione comprendono la discretizzazione basata sul clustering e quella basata sull'albero decisionale.
Riduzione della dimensionalità
La riduzione della dimensionalità significa limitare il numero di caratteristiche o variabili in un set di dati e preservare solo le informazioni rilevanti per la risoluzione di un problema. Si consideri, ad esempio, un set di dati contenente informazioni sulla cronologia degli acquisti dei clienti. Presenta le date di acquisto, gli articoli acquistati, i prezzi degli articoli e il luogo in cui sono avvenuti gli acquisti. Riducendo la dimensionalità di questo set di dati, omettiamo tutto tranne le caratteristiche più importanti, ad esempio un articolo acquistato e il suo prezzo. La riduzione della dimensionalità può essere eseguita con una varietà di tecniche, alcune delle quali sono l'analisi delle componenti principali, l'analisi discriminante lineare e l'incorporamento dei vicini stocastici con distribuzione t.
Trasformazione registro
Un altro modo di preparare i dati per ML, la trasformazione logaritmica si riferisce all'applicazione di una funzione logaritmica ai valori di una variabile in un set di dati. Viene spesso utilizzato quando i dati di addestramento sono molto distorti o hanno un ampio intervallo di valori. L'applicazione di una funzione logaritmica può aiutare a rendere più simmetrica la distribuzione dei dati.
Parlando di trasformazione dei dati, dovremmo anche menzionare l'ingegneria delle funzionalità. Sebbene sia una forma di trasformazione dei dati, l'ingegneria delle funzionalità è più di una tecnica o di una fase nel processo di preparazione dei dati per il machine learning. Sta per selezionare, trasformare e creare funzionalità in un set di dati. L'ingegneria delle funzionalità prevede una combinazione di tecniche statistiche, matematiche e computazionali, incluso l'uso di modelli ML, per creare funzionalità che acquisiscono le informazioni più rilevanti nei dati.
Di solito è un processo iterativo che richiede di testare e valutare diverse tecniche e combinazioni di funzionalità per trovare l'approccio migliore per risolvere un problema.
Divisione dei dati
Il passaggio successivo nel processo di preparazione dei dati per il machine learning prevede la divisione di tutti i dati raccolti in sottoinsiemi, un processo noto come suddivisione dei dati. In genere, i dati vengono suddivisi in un set di dati di addestramento, convalida e test.
- Un set di dati di addestramento viene utilizzato per insegnare effettivamente a un modello ML a riconoscere i modelli e le relazioni tra le variabili di input e di destinazione. Questo set di dati è in genere il più grande.
- Un set di dati di convalida è un sottoinsieme di dati utilizzato per valutare le prestazioni di un modello durante l'addestramento. Aiuta a mettere a punto il modello regolando gli iperparametri (pensa: parametri del processo di addestramento che vengono impostati manualmente prima dell'addestramento, come il tasso di apprendimento, la forza di regolarizzazione o il numero di livelli nascosti). Il set di dati di convalida aiuta anche a prevenire l'overfitting dei dati di addestramento.
- Un set di dati di test è un sottoinsieme di dati utilizzato per valutare le prestazioni di un modello addestrato. Il suo obiettivo è valutare l'accuratezza del modello su dati nuovi e invisibili. Il set di dati di test viene utilizzato solo una volta, dopo che il modello è stato addestrato e messo a punto sui set di dati di addestramento e convalida.
Suddividendo i dati, possiamo valutare le prestazioni di un modello ML su dati mai visti prima. Senza suddivisione, è probabile che il modello funzionerebbe male con i nuovi dati. Ciò può accadere perché il modello potrebbe aver appena memorizzato i punti dati invece di apprendere modelli e generalizzarli a nuovi dati.
Esistono diversi approcci alla suddivisione dei dati e la scelta di quello ottimale dipende dal problema da risolvere e dalle proprietà del set di dati. I nostri esperti nella preparazione dei dati per il machine learning affermano che spesso è necessaria una certa sperimentazione da parte del team di dati per determinare la strategia di suddivisione più efficace. Le seguenti sono le strategie più comuni.
- Campionamento casuale: con questa strategia, i dati vengono suddivisi in modo casuale. Questo approccio viene spesso applicato a set di dati di grandi dimensioni rappresentativi della popolazione modellata. In alternativa, viene utilizzato quando non ci sono relazioni note in un set di dati, il che può richiedere un approccio più specializzato.
- Campionamento stratificato: in questa strategia, i dati sono divisi in sottoinsiemi basati su etichette di classe o altre caratteristiche, seguiti da un campionamento casuale di questi sottoinsiemi. Questa strategia viene applicata a set di dati sbilanciati con il numero di valori in una classe che supera notevolmente il numero di valori in altre. In tal caso, il campionamento stratificato aiuta a garantire che i set di dati di addestramento e test abbiano una distribuzione di valori simile per ogni classe.
- Campionamento basato sul tempo: questa strategia viene utilizzata quando i dati raccolti fino a un certo momento costituiscono un set di dati di addestramento, mentre i dati raccolti dopo il set point vengono formati in un set di dati di test. Questo approccio viene utilizzato quando i dati sono stati raccolti per un lungo periodo di tempo, ad esempio in set di dati finanziari o medici, in quanto consente di garantire che il modello possa fare previsioni accurate sui dati futuri.
- Convalida incrociata: con questa strategia, i dati vengono divisi in più sottoinsiemi o pieghe. Alcune pieghe vengono utilizzate per addestrare il modello, mentre le restanti vengono utilizzate per la valutazione delle prestazioni. Il processo viene ripetuto più volte, con ogni piega che serve come dati di test almeno una volta. Esistono diverse tecniche di convalida incrociata, ad esempio la convalida incrociata k-fold e la convalida incrociata leave-one-out. La convalida incrociata in genere fornisce una stima più accurata delle prestazioni di un modello rispetto alla valutazione su un singolo set di dati di test.
Su una nota finale
La corretta preparazione dei dati per il machine learning è essenziale per lo sviluppo di soluzioni di machine learning accurate e affidabili. In ITRex, comprendiamo le sfide della preparazione dei dati e l'importanza di disporre di un set di dati di qualità per un processo ML di successo.
Se vuoi massimizzare il potenziale dei tuoi dati attraverso il ML, contatta il team ITRex. I nostri esperti forniranno assistenza nella raccolta, pulizia e trasformazione dei dati.
Questo articolo è stato originariamente pubblicato sul sito web di itrex.