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:
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
, nbsynthetic
E 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