La visualizzazione dei dati è la rappresentazione grafica dei dati utilizzando elementi visivi come grafici ad assi, diagrammi a punti e dashboard. Aiuta a interpretare dati complessi agli stakeholder o a un destinatario non tecnico che può utilizzarli per il processo decisionale.
Nell'apprendimento automatico (ML), significa molto più che creare una dashboard o un report. Consiste nelle operazioni di sviluppo, debug e miglioramento dei modelli di apprendimento automatico (ML). Viene utilizzato per interrogare i dati prima della formazione, monitorare ciò che accade durante la formazione e diagnosticare qual è stato il problema o cosa è andato bene dopo la valutazione.Non si tratta meno di presentazione e più di indagine.
In pratica, entrambi i fenomeni si sovrappongono. Un valido professionista dell'apprendimento automatico o della data science utilizza la visualizzazione dei dati per se stesso per individuare i problemi e ottimizzare i modelli e per gli altri per spiegare i risultati e creare fiducia negli output dei modelli.
La visualizzazione dei dati nell'apprendimento automatico influisce direttamente sulla qualità dei tuoi modelli, sulle decisioni che prendi e sulla capacità degli altri di comprendere il tuo lavoro.
La visualizzazione viene eseguita durante l'intero workflow di apprendimento automatico (ML), dal momento in cui ricevi i dati non elaborati fino alla valutazione finale del tuo modello.Ecco dove si manifesta in ogni fase. Le tecniche di visualizzazione menzionate in ogni fase saranno discusse in dettaglio nelle sezioni successive.
Prima di iniziare qualsiasi analisi, devi capire con cosa stai lavorando. Ciò significa verificare la presenza di valori mancanti, tipi di dati incoerenti e record duplicati, perché qualsiasi problema strutturale nei dati in questa fase danneggerà silenziosamente tutto ciò che segue. Le mappe di calore dei valori mancanti, i grafici di distribuzione dei tipi di dati e i grafici di frequenza dei registri offrono un quadro rapido e affidabile dello stato di salute dei dati prima di investire tempo a costruirci sopra.
L'analisi esplorativa dei dati aiuta a capire la struttura, la distribuzione e le relazioni nel set di dati prima di sviluppare qualsiasi cosa, utilizzando istogrammi, diagrammi di dispersione, matrici di correlazione, box plot e diagrammi a coppie per rilevare pattern, anomalie e relazioni che i numeri non elaborati da soli non rivelano. L'EDA è di natura iterativa: si visualizza qualcosa, si formula un'ipotesi, la si testa e la si visualizza di nuovo fino a comprendere veramente cosa dicono i dati.
Dopo aver compreso i dati non elaborati, si inizia a trasformarli e a selezionare le caratteristiche per il modello. A questo punto, visualizzare i dati consente di verificare che le trasformazioni stiano producendo i risultati attesi e aiuta a capire quali caratteristiche siano realmente utili. Comprendere i grafici di distribuzione, i diagrammi di importanza delle caratteristiche o il comportamento delle caratteristiche nei diversi gruppi target trasforma la pre-elaborazione arbitraria in scelte che è possibile giustificare chiaramente.
Man mano che il modello di apprendimento automatico viene formato, la visualizzazione smette di esaminare i dati e diventa invece un modo per tracciare il processo di apprendimento del modello. Grafici come le curve di apprendimento o di perdita rivelano se il modello sta migliorando, si stabilizza o è in overfitting. Quel feedback ti consente di mettere a punto iperparametri, modificare la regolarizzazione o intervenire sulla durata della formazione prima che il lavoro venga completato.
Dopo la formazione, la visualizzazione è il modo per andare oltre un singolo valore di accuratezza e capire veramente come si comporta il modello. Le matrici di confusione, le curve ROC, le curve di richiamo di precisione e i grafici residui rivelano ciascuno una diversa dimensione del comportamento del modello. Vengono analizzate le prestazioni per classe, in base alle soglie e all'intervallo dei valori previsti, in modo da poter sapere non solo quanto bene funziona il modello, ma anche dove ha successo e dove no.
Conoscere i tipi di visualizzazione dei dati utilizzati nell'apprendimento automatico significa pensare in termini di casi d'uso, non solo di nomi di grafici.Ecco una suddivisione strutturata.
Un istogramma mostra come viene distribuita una singola caratteristica numerica. Divide i valori in bin sull'asse x e conta quanti punti dati cadono in ciascun bin sull'asse y. In Python, usando strumenti come matplotlib o seaborn, tracciare rapidamente un istogramma mostra se una caratteristica appare normale, inclinata verso destra, bimodale o quasi uniforme.
Ogni schema suggerisce una fase di pre-elaborazione diversa.Ad esempio, potresti tracciare un istogramma dei prezzi dei prodotti e vedere la maggior parte di essi al di sotto dei 50 USD, ma sul lungo periodo il prezzo può arrivare a 500 USD. Questo schema suggerisce che la caratteristica trarrebbe vantaggio da una trasformazione logaritmica prima di essere utilizzata in un modello.
I grafici di dispersione posizionano due variabili numeriche sull'asse x e sull'asse y, con ogni punto dato rappresentato come un punto.Sono utili per notare sia i pattern lineari sia quelli non lineari, individuare dove si formano i cluster e segnalare outlier che si trovano molto lontani dal resto dei dati.Ad esempio, un grafico che metta in relazione le dimensioni di una casa con il prezzo di vendita potrebbe mostrare una netta tendenza al rialzo fino a una certa soglia dimensionale, dopodiché i prezzi si stabilizzano: un modello che vale la pena analizzare prima di iniziare la formazione.
Una matrice di correlazione mostra la correlazione a coppie tra ogni caratteristica numerica nel tuo set di dati. Rappresentata come una mappa di calore, in cui il colore delle celle codifica l'intensità della correlazione, rende la multicollinearità visibile a colpo d'occhio.Le caratteristiche con una correlazione di 0,95 o superiore sono spesso candidate alla rimozione durante la selezione delle caratteristiche, in quanto contengono informazioni ridondanti.
La correlazione acquisisce solo le relazioni lineari, quindi una correlazione quasi zero non significa che due caratteristiche siano indipendenti.Ad esempio, "stanze totali" e "camere da letto totali" in un set di dati sulle abitazioni mostreranno quasi sempre una correlazione molto alta e il mantenimento di entrambe non aggiungerà nuove informazioni al modello.
I diagrammi a scatole e baffi forniscono una rapida sintesi della distribuzione di una variabile, mostrando la mediana, l'intervallo principale dei dati (l'intervallo interquartile) e gli eventuali outlier.Sono particolarmente utili nell'apprendimento automatico per confrontare in che modo le caratteristiche differiscono tra i gruppi target, ad esempio per valutare il reddito di chi ha inadempiuto un prestito rispetto a chi non l'ha fatto.
I grafici a coppie generano una griglia di grafici di dispersione per ogni combinazione di caratteristiche numeriche nel set di dati, con istogrammi o diagrammi di densità lungo la diagonale. La funzione di grafici a coppie di Seaborn genera questi grafici in una singola riga. Per set di dati con fino a 10 - 15 caratteristiche, i diagrammi a coppie offrono una panoramica rapida e multivariata che richiederebbe numerosi grafici individuali per essere replicata.
In questo contesto le caratteristiche si riferiscono semplicemente alle singole colonne del tuo set di dati come età, reddito o frequenza di acquisto.Ad esempio, un grafico a coppie per un set di dati di vendita potrebbe rivelare rapidamente che i ricavi e le unità vendute si muovono in stretta correlazione, mentre il tasso di sconto non è particolarmente legato a nessuno dei due. Gli insight come questi possono aiutarti a decidere quali caratteristiche sono degne di essere mantenute.
I grafici di densità sono come versioni più uniformi degli istogrammi.Sono utili per confrontare in che modo una caratteristica è distribuita tra due gruppi.Quando le curve sono distanti, la caratteristica di solito ha un forte valore predittivo. Ma se si sovrappongono, è meno utile.
Ad esempio, se si traccia la densità della "frequenza di acquisto" per i clienti fedeli rispetto a quelli abbandonati e se le due linee formano picchi chiaramente separati, è un buon segno che le caratteristiche saranno utili in un modello di previsione dell'abbandono.
Puoi estrarre i punteggi di importanza delle caratteristiche dopo aver formato un modello e visualizzarli in un grafico a barre per vedere quali caratteristiche hanno maggiore importanza.I modelli basati sugli alberi decisionali sono un esempio comune, in quanto forniscono naturalmente questi punteggi di importanza.Le caratteristiche con un'importanza molto bassa sono spesso ottime candidate per essere rimosse e strumenti come Plotly o matplotlib possono creare questi grafici facilmente anche in presenza di numerose caratteristiche.
Questi grafici confrontano la distribuzione di una caratteristica prima e dopo una trasformazione (scala, codifica, trasformazione logaritmica) e confermano se il passaggio di pre-elaborazione ha raggiunto l'effetto desiderato.Questo confronto è importante perché l'inserimento di una caratteristica trasformata in modo inadeguato in un modello può falsare le previsioni e un semplice grafico affiancato consentirà di rilevare il problema prima che raggiunga la fase di formazione.
Una curva di apprendimento è un tipo di visualizzazione della formazione del modello che traccia le prestazioni dei grafici (precisione o perdita) sull'asse y rispetto alle dimensioni del set di formazione o alle iterazioni di formazione sull'asse x, con righe separate per la formazione e la convalida.
Questa singola visualizzazione diagnostica le due modalità di guasto più comuni dei modelli di apprendimento automatico (ML): overfitting (grande divario tra formazione e prestazioni di convalida) e underfitting (entrambe le linee sono basse e convergono rapidamente). Una volta osservata la curva di apprendimento, la regolazione della complessità del modello, della regolarizzazione o della dimensione dei dati di formazione diventa mirata anziché casuale.
Per i modelli di deep learning, tracciare la perdita di formazione e la perdita di convalida nel corso delle epoche è una pratica standard. Una perdita di convalida che smette di migliorare o inizia ad aumentare mentre la perdita di formazione continua a diminuire è il segnale per interrompere presto la formazione. Questi grafici in genere vengono generati in tempo reale utilizzando strumenti come TensorBoard durante la formazione.
Più in generale, i grafici lineari che tracciano qualsiasi metrica (precisione, punteggio F1, area sotto la curva) durante le iterazioni di formazione offrono un quadro costante di come il modello si sta evolvendo.Sono più informativi di una singola metrica di fine formazione in quanto mostrano la traiettoria, non solo la destinazione.
Una matrice di confusione è un tipo di visualizzazione della valutazione del modello che presenta ogni combinazione di etichette di classe effettive e previste in una griglia, veri positivi, veri negativi, falsi positivi e falsi negativi, in modo da poter vedere esattamente dove il tuo modello è giusto e dove è sbagliato.
È la base della maggior parte delle metriche di classificazione; precisione, richiamo e punteggio F1 derivano tutti da essa. Rappresentata come una mappa di calore con annotazioni che mostrano conteggi o percentuali, rende immediatamente leggibili gli errori a livello di classe. Un modello che "sembra buono" in termini di precisione ma ha una riga vuota per una classe critica mostrerà immediatamente questo errore nella matrice di confusione.
Le curve ROC rappresentano graficamente il tasso di veri positivi rispetto al tasso di falsi positivi per ogni possibile soglia di classificazione, da 0 a 1. L'area sotto la curva (AUC) riassume la capacità discriminatoria complessiva del modello in un singolo numero: 0,5 corrisponde a una scelta casuale, 1,0 alla perfezione. Le curve ROC sono particolarmente utili quando si confrontano più modelli o quando il costo dei falsi positivi e dei falsi negativi è differente.Strumenti come scikit-learn e plotly hanno entrambi il supporto integrato per generarli.
Quando il set di dati è fortemente sbilanciato, le curve precisione-richiamo offrono un quadro molto più veritiero delle prestazioni del modello rispetto alle curve ROC. Un classificatore efficiente si sposta verso l'angolo in alto a destra del grafico, mantenendo un'elevata precisione senza sacrificare la capacità di richiamo. Il grafico riporta la precisione sull'asse y e il richiamo sull'asse x, in funzione di diverse soglie decisionali.
In campi ad alto rischio come la diagnosi medica o il rilevamento delle frodi, dove non riuscire a rilevare il caso raro è molto più dannoso di un falso allarme, questa curva spesso indica più di qualsiasi altro metodo.
Per i modelli di regressione, un grafico del residuo mostra la differenza tra i valori previsti e quelli effettivi (il residuo) sull'asse y rispetto al valore previsto sull'asse x. I residui dovrebbero distribuirsi in modo casuale intorno allo zero, senza alcun modello riconoscibile. Se i residui si diramano, si curvano sistematicamente o si disperdono, il modello presenta un problema strutturale, ovvero non riesce a cogliere qualche aspetto della relazione presente nei dati.
Matplotlib è la base open source su cui si basa tutto il resto. Il suo modulo "pyplot" (importato come "plt") gestisce l'intera gamma di grafici standard, istogrammi, grafici a dispersione, grafici a linee, grafici a barre e altro ancora.Rispetto alle librerie più recenti, è più prolissa, ma questa prolissità offre un controllo preciso su ogni dettaglio: annotazioni, etichette degli assi, layout e dimensioni delle figure.
Seaborn si basa su matplotlib e riduce significativamente il codice ripetitivo. Una mappa di calore, un grafico a coppie o un box plot che richiederebbe 15 righe in matplotlib ne richiede una o due in seaborn. Legge direttamente dai DataFrames di Pandas, il che lo rende il punto di riferimento per l'EDA negli ambienti Jupyter Notebook.
Plotly è la scelta giusta quando il tuo output deve essere interattivo. I grafici vengono visualizzati in HTML, il che consente agli spettatori di passare il mouse sui dati dei punti, zoomare e alternare le serie, il che li rende molto più utili delle immagini statiche quando si presentano i risultati agli stakeholder tramite dashboard o report web.
NumPy non è uno strumento di visualizzazione in sé, ma costituisce la base di quasi tutti i workflow di visualizzazione, gestendo la manipolazione degli array e la preparazione dei dati per gli assi x e y, elementi essenziali per matplotlib e seaborn.
Yellowbrick è stato sviluppato appositamente per la valutazione di apprendimento automatico (ML). Questo strumento integra scikit-learn e genera matrici di confusione, curve ROC, curve di apprendimento e grafici di importanza delle caratteristiche con una singola chiamata di funzione, evitando il cablaggio manuale richiesto da matplotlib.
TensorBoard si occupa del deep learning. Trasmette in tempo reale metriche di formazione, curve di perdita e grafici del modello durante la formazione, necessari per monitorare set di dati di grandi dimensioni e lavori di reti neurali di lunga durata.
Una visualizzazione dei dati efficace non significa solo scegliere il grafico giusto, ma anche evitare gli schemi che inducono silenziosamente in errore.
La visualizzazione dei dati nell'apprendimento automatico (ML) non è un passaggio finale, è intrecciata in ogni fase di un progetto.È il modo in cui i data scientist diagnosticano problemi che non potrebbero vedere in una tabella, individuano problemi dei modelli nascosti dalle metriche, comunicano i risultati agli stakeholder e prendono decisioni sicure basate sui dati in ogni fase del workflow.
Sviluppare l'abitudine di visualizzare deliberatamente in ogni fase è una delle cose più semplici e più utilizzate che puoi fare per migliorare sia la qualità dei tuoi modelli sia la chiarezza del pensiero.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.