Set di dati di alta qualità per il machine learning

 | Intelligenza-Artificiale

Se prestassimo attenzione al passaggio 1 (forse l’hai già scoperto), la nostra classe target, Outcomeè sbilanciato. Forse non al punto da attivare un avviso nelle impostazioni predefinite (il soglia predefinita È 0.5), ma sufficiente a sbilanciare ancora il classificatore verso la classe maggioritaria, trascurando quella minoritaria. Ciò risulta chiaro dalla visualizzazione dei dati presentata nel Report di Profilazione:

Rapporto YData Profiling: le classi di risultato “0” e “1” non sono ugualmente rappresentate. I classificatori saranno naturalmente più sbilanciati verso la classe “0” ben rappresentata, trascurando la classe “1”.

Tieni presente che, sebbene i dati mancanti possano essere causati da diversi errori durante la raccolta, la trasmissione o l’archiviazione dei dati, lo squilibrio di classe può riflettere una caratteristica naturale del dominio: ad esempio, in questo centro medico ci sono semplicemente meno pazienti con diagnosi di diabete.

Resta comunque importante agire sui dati di training per garantire che il modello non trascuri i casi minoritari: è infatti quello che stiamo cercando di prevedere con maggiore precisione.

Un falso positivo è negativo poiché fornirà informazioni errate a un paziente sano che ha il diabete. Ma quando verranno effettuati ulteriori test, questo sarà solo uno “spavento”.

Tuttavia, in questo caso, un falso negativo è peggio. Diremmo a un paziente con diabete che va tutto bene, che la malattia non viene diagnosticata e che la malattia progredisce.

Un modo per aumentare questi numeri è utilizzare tecniche di sovracampionamento dei dati. Il sovracampionamento dei dati è una tecnica popolare tra i professionisti dei dati per regolare la distribuzione di un set di dati, ovvero il rapporto tra le classi o categorie esistenti nei dati, mitigando così il problema dei dati sbilanciati.

Ed è solo una delle tante applicazioni interessanti e utili dei dati sintetici.

Mentre i dati sintetici possono avere diverse interpretazioni — ad esempio, “dati falsi”, “dati fittizi”, “dati simulati” — qui ci riferiamo alla generazione di dati sintetici “guidata dai dati”.

In questo senso, i dati sintetici sono generati artificialmente in modo da preservare le caratteristiche dei dati reali: struttura, proprietà statistiche, dipendenze e correlazioni.

Esistono numerosi metodi e strumenti open source per generare dati sintetici: ydata-synthetic, sdv, gretel-synthetics, nbsyntheticE synthcity sono solo alcuni che ho sperimentato in passato.

E ancora… “non ci sono pasti gratis”: la scelta del metodo più appropriato dipenderà sempre dall’obiettivo per il quale servono i dati sintetici.

Per avere una rapida comprensione di come i dati sintetici possono essere utilizzati per l’aumento, sfrutteremo il ydata-synthetic pacchetto e sperimentare con il loro Modelli di miscela gaussiana.

Per prima cosa dovremo installare il pacchetto:

E una volta fatto ciò, la creazione di dati sintetici è semplicissima:

Dopo aver ottenuto i nostri dati sintetici, possiamo semplicemente estrarre un sottoinsieme dei campioni di classi minoritarie appena generati mediante campionamento dai dati sintetici e aggiungerli ai dati di addestramento per creare una distribuzione equilibrata (ovvero 50%-50%) :

Vediamo come ciò influisce sull’apprendimento del nostro albero decisionale e sui suoi risultati successivi:

E la matrice di confusione:

Si noti come una modifica così semplice del nostro set di allenamento abbia comportato un aumento delle prestazioni del nostro punteggio F del 10% e un miglioramento significativo dei risultati della sensibilità delle classi minoritarie (dal 53% al 73%).

Qui sta la bellezza del paradigma Data-Centric AI: senza mai toccare la parametrizzazione del nostro modello, abbiamo migliorato significativamente la qualità del nostro training set con euristiche molto semplici e tecniche standard – immagina cosa potremmo fare con strategie più avanzate e pipeline specializzate per la preparazione dei dati!

Certo, il richiamo della Classe 0 ha sofferto un po’, ma alla fine ne abbiamo bisogno questo modello è più sensibile che specifico (ovvero, rilevare meglio la classe positiva rispetto alla classe negativa) a causa dei vincoli particolari con cui abbiamo a che fare: diagnosi della malattia – ancora una volta, un altro principio dell’intelligenza artificiale data-centrica: metodi e risultati devono essere valutati in base alle esigenze e ai vincoli del dominio.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *