Bilancia i tuoi dati per l'apprendimento automatico con Amazon SageMaker Data Wrangler

Nodo di origine: 1600102

Gestore di dati di Amazon SageMaker è una nuova capacità di Amazon Sage Maker ciò rende più veloce per i data scientist e gli ingegneri preparare i dati per le applicazioni di machine learning (ML) utilizzando un'interfaccia visiva. Contiene oltre 300 trasformazioni di dati integrate in modo da poter normalizzare, trasformare e combinare rapidamente funzionalità senza dover scrivere alcun codice.

Oggi siamo lieti di annunciare nuove trasformazioni che ti consentono di bilanciare i tuoi set di dati in modo semplice ed efficace per l'addestramento dei modelli ML. Dimostriamo come funzionano queste trasformazioni in questo post.

Nuovi operatori di bilanciamento

Gli operatori di bilanciamento recentemente annunciati sono raggruppati sotto il Dati di equilibrio trasformare il tipo in AGGIUNGI TRASFORMAZIONE riquadro.

Attualmente gli operatori di trasformazione supportano solo problemi di classificazione binaria. Nei problemi di classificazione binaria, il classificatore ha il compito di classificare ciascun campione in una delle due classi. Quando il numero di campioni nella classe maggioritaria (più grande) è considerevolmente maggiore del numero di campioni nella classe minoritaria (più piccola), il set di dati è considerato sbilanciato. Questa distorsione rappresenta una sfida per gli algoritmi e i classificatori ML perché il processo di formazione tende a essere sbilanciato verso la classe maggioritaria.

Per affrontare questa sfida sono stati proposti schemi di bilanciamento, che aumentano i dati per renderli più bilanciati prima dell'addestramento del classificatore. I metodi di bilanciamento più semplici consistono nel sovracampionare la classe minoritaria duplicando i campioni minoritari o nel sottocampionare la classe maggioritaria rimuovendo i campioni maggioritari. L'idea di aggiungere campioni di minoranza sintetica ai dati tabulari è stata proposta per la prima volta nella tecnica di sovracampionamento della minoranza sintetica (SMOTE), in cui i campioni di minoranza sintetica vengono creati interpolando coppie di punti di minoranza originali. SMOTE e altri schemi di bilanciamento sono stati ampiamente studiati empiricamente e hanno dimostrato di migliorare le prestazioni di previsione in vari scenari, come da pubblicazione SMOTE o non SMOTE.

Data Wrangler ora supporta i seguenti operatori di bilanciamento come parte di Dati di equilibrio trasformare:

  • Sovracampionatore casuale – Duplicare casualmente i campioni minoritari
  • Sottocampionatore casuale – Rimuovere casualmente i campioni maggioritari
  • percossero – Genera campioni di minoranza sintetica interpolando campioni di minoranza reale

Analizziamo ora in dettaglio i diversi operatori di bilanciamento.

Sovracampionamento casuale

Il sovracampionamento casuale include la selezione di esempi casuali dalla classe minoritaria con una sostituzione e l'integrazione dei dati di addestramento con più copie di questa istanza. Pertanto, è possibile che una singola istanza venga selezionata più volte. Con il Random sovracampionamento tipo di trasformazione, Data Wrangler sovracampiona automaticamente la classe minoritaria duplicando i campioni minoritari nel tuo set di dati.

Sottocampione casuale

Il sottocampionamento casuale è l’opposto del sovracampionamento casuale. Questo metodo cerca di selezionare e rimuovere in modo casuale i campioni dalla classe maggioritaria, riducendo di conseguenza il numero di esempi nella classe maggioritaria nei dati trasformati. IL Random sottocampione il tipo di trasformazione consente a Data Wrangler di sottocampionare automaticamente la classe di maggioranza rimuovendo i campioni di maggioranza nel set di dati.

percossero

In SMOTE, i campioni sintetici minoritari vengono aggiunti ai dati per ottenere il rapporto desiderato tra campioni maggioritari e minoritari. I campioni sintetici sono generati mediante interpolazione di coppie di punti minoritari originali. IL percossero la trasformazione supporta il bilanciamento dei set di dati, comprese le funzionalità numeriche e non numeriche. Le caratteristiche numeriche sono interpolate mediante media ponderata. Tuttavia, non è possibile applicare l'interpolazione della media ponderata a elementi non numerici: è impossibile calcolare la media “dog” ed “cat” Per esempio. Invece, le caratteristiche non numeriche vengono copiate da uno dei campioni minoritari originali in base al peso medio.

Consideriamo ad esempio due campioni A e B:

A = [1, 2, "dog", "carnivore"]
B = [0, 0, "cow", "herbivore"]

Supponiamo che i campioni siano interpolati con pesi 0.3 per il campione A e 0.7 per il campione B. Pertanto, viene calcolata la media dei campi numerici con questi pesi per ottenere rispettivamente 0.3 e 0.6. Il campo successivo è riempito con “dog” con probabilità 0.3 e “cow” con probabilità 0.7. Allo stesso modo, il successivo è uguale “carnivore” con probabilità 0.3 e “herbivore” con probabilità 0.7. La copia casuale viene eseguita in modo indipendente per ciascuna funzione, quindi l'esempio C riportato di seguito è un possibile risultato:

C = [0.3, 0.6, "dog", "herbivore"]

Questo esempio dimostra come il processo di interpolazione potrebbe produrre campioni sintetici non realistici, come un cane erbivoro. Ciò è più comune con le funzionalità categoriali, ma può verificarsi anche con le funzionalità numeriche. Anche se alcuni campioni sintetici potrebbero non essere realistici, SMOTE potrebbe comunque migliorare le prestazioni di classificazione.

Per generare euristicamente campioni più realistici, SMOTE interpola solo le coppie vicine nello spazio delle caratteristiche. Tecnicamente, ogni campione viene interpolato solo con i suoi k vicini più vicini, dove un valore comune per k è 5. Nella nostra implementazione di SMOTE, solo le caratteristiche numeriche vengono utilizzate per calcolare le distanze tra i punti (le distanze vengono utilizzate per determinare l'intorno di ciascun campione). È pratica comune normalizzare le caratteristiche numeriche prima di calcolare le distanze. Si noti che le caratteristiche numeriche sono normalizzate solo ai fini del calcolo della distanza; le caratteristiche interpolate risultanti non sono normalizzate.

Cerchiamo ora di bilanciare il Set di dati per adulti (noto anche come set di dati Census Income) utilizzando la trasformazione SMOTE integrata fornita da Data Wrangler. Questo set di dati multivariato include sei caratteristiche numeriche e otto caratteristiche di stringa. L'obiettivo del set di dati è un'attività di classificazione binaria per prevedere se il reddito di un individuo supera o meno i 50,000 dollari all'anno sulla base dei dati del censimento.

Puoi anche vedere visivamente la distribuzione delle classi creando un istogramma utilizzando il file tipo di analisi dell'istogramma in Data Wrangler. La distribuzione target è sbilanciata e il rapporto tra i record con >50K a <=50K è circa 1:4.

Possiamo bilanciare questi dati utilizzando il file percossero operatore trovato sotto il Dati di saldo trasformarlo in Data Wrangler con i seguenti passaggi:

  1. Scegli income come colonna di destinazione.

Vogliamo che la distribuzione di questa rubrica sia più equilibrata.

  1. Impostare il rapporto desiderato su 0.66.

Pertanto, il rapporto tra il numero di campioni minoritari e maggioritari è 2:3 (invece del rapporto grezzo di 1:4).

  1. Scegli percossero come trasformazione da utilizzare.
  2. Lasciare i valori predefiniti per Numero di vicini fare la media e se normalizzarla o meno.
  3. Scegli Anteprima per ottenere un'anteprima della trasformazione applicata e scegliere Aggiungi per aggiungere la trasformazione al flusso di dati.

Ora possiamo creare un nuovo istogramma simile a quello che abbiamo fatto prima per vedere la distribuzione riallineata delle classi. La figura seguente mostra l'istogramma di income colonna dopo aver bilanciato il set di dati. La distribuzione dei campioni è ora 3:2, come previsto.

Ora possiamo esportare questi nuovi dati bilanciati e addestrare un classificatore su di essi, che potrebbe produrre una qualità di previsione superiore.

Conclusione

In questo post, abbiamo dimostrato come bilanciare i dati di classificazione binaria sbilanciati utilizzando Data Wrangler. Data Wrangler offre tre operatori di bilanciamento: sottocampionamento casuale, sovracampionamento casuale e SMOTE per ribilanciare i dati nei set di dati sbilanciati. Tutti e tre i metodi offerti da Data Wrangler supportano dati multimodali che includono caratteristiche numeriche e non numeriche.

Come passaggio successivo, ti consigliamo di replicare l'esempio in questo post nel flusso di dati di Data Wrangler per vedere in azione ciò di cui abbiamo discusso. Se non conosci Data Wrangler o Sage Maker Studio, fare riferimento a Inizia con Data Wrangler. Se hai domande relative a questo post, aggiungilo nella sezione commenti.


Informazioni sugli autori

Yotam Elor è uno scienziato applicato senior presso Amazon SageMaker. I suoi interessi di ricerca riguardano l'apprendimento automatico, in particolare per i dati tabulari.

Arunprasath Shankar è uno specialista in Solutions Architect di intelligenza artificiale e apprendimento automatico (AI / ML) con AWS, che aiuta i clienti globali a scalare le loro soluzioni di intelligenza artificiale in modo efficace ed efficiente nel cloud. Nel suo tempo libero, Arun ama guardare film di fantascienza e ascoltare musica classica.

Fonte: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

Timestamp:

Di più da Blog di apprendimento automatico AWS