Nel nostro precedente articolo “Come utilizzare ChatGPT per fare Data Analysis (I)” dello scorso mese, abbiamo esplorato alcune delle potenzialità di ChatGPT nell’analisi dati, come la generazione di codice e la creazione di dataset sintetici.
Nell’articolo di oggi approfondiremo ulteriori applicazioni utili, partendo dall’analisi esplorativa dei dati (EDA) con grafici e modelli statistici, fino a concludere con la documentazione necessaria a supporto.
Task 4: applicazioni relative all'analisi dati in senso stretto
- Pulizia e Preparazione dei Dati: richiesta di metodi per gestire dati mancanti, rimuovere duplicati o convertire tipi di dati, o descrivere il risultato voluto richiedendo la traduzione in codice Python.
- Analisi Esplorativa (EDA): generazione di statistiche descrittive, grafici e correlazioni.
- Modellazione Statistica e Machine Learning: richiesta di codice per costruire, valutare e ottimizzare modelli.
Come comporre il Prompt in ChatGpt
- Descrivi il problema specifico e i dati a disposizione.
- Indica il linguaggio di programmazione e le librerie da utilizzare (es. Python con pandas, scikit-learn)
- puoi esprimere delle preferenze indicando di usare quando possibile Seaborn e non Matplotlib
- puoi indicare come ordinare i valori nei grafici mostrati e quali palette colori preferire
- puoi indicare quale modelli statistici richiamare.
- Chiedi per best practices e consigli specifici per il tuo caso d’uso.
Casi d'Uso Pratici
Immaginiamo ora un contesto d’uso diverso, ma assai più frequente, disponendo di un dataset di cui si conoscono solo le generalità. È utile condurre una prima fase di analisi per capire, ad esempio, cardinalità, data type e distribuzione dei dati. Ma anche per evidenziare possibili errori o incompletezze, o correlazioni o pattern da indagare in step successivi.
Il primo passo inizia con l’EDA. Per questo esempio, abbiamo utilizzato un dataset con l’indice di gradimento dei dolcetti di Halloween e abbiamo proceduto a:
- Caricare il dataset specificando come interpretare il contenuto testuale, grazie alla descrizione presente in Kaggle, per richiedere un’analisi statistico descrittiva.
- Valutare i risultati e chiedere ulteriori livelli di analisi o approfondimenti.
- Esportare il codice ottenuto e continuare l’analisi in modo comparato e/o approfondito.
Nella gif che segue è presente il workflow esposto nei punti precedenti:
Giunti al momento di esportare il lavoro, si introduce un nuovo caso d’uso per ChatGPT: scrivere la documentazione con i dettagli sul dataset, i passaggi e i calcoli richiesti e la sintesi degli insights derivati dall’analisi condotta.
ChatGPT, sebbene sia uno strumento potente e versatile, non può sostituire l’analista, che è chiamato a un utilizzo critico del tool per massimizzare i benefici e minimizzare le fonti di errore. Quindi è fondamentale poter ispezionare a livello di codice – ed eventualmente intervenire per correggere – le istruzioni in Python che vengono generate.
Qui di seguito è riportata l’interazione iniziale punto 1.
Nell’immagine seguente è riportato un overview del dataset, con le caratteristiche principali del file importato, e anche in questo caso la richiesta viene tradotta in codice Python eseguito, i cui risultati sono interpretati per restituire un output testuale in linguaggio naturale.
Accedendo all’inspector del Code Interpreter si intuisce come la richiesta di verificare la presenza o meno di valori nulli venga gestita da ChatGPT mandando in esecuzione il seguente codice.
#Dataset Overview
dataset_overview = {
'Number of Rows': candy_data.shape[0],
'Number of Columns': candy_data.shape[1],
'Column Names': candy_data.columns.tolist(),
'Missing Values': candy_data.isnull().sum().sum() # Total missing values across the dataset
}
Per esempio, l’istruzione candy_data.isnull().sum().sum() ci indica se ci sono o meno valori mancanti nel dataset. In questo modo, ChatGPT utilizza le funzionalità della libreria Pandas per restituire un’interpretazione dei risultati ottenuti. Dopo essere stato istruito sul contesto di analisi, il tool ha gestito correttamente la codifica binaria (1/0) usata per indicare la presenza o assenza di un determinato ingrediente, valutando la distribuzione della popolarità e degli ingredienti sul numero di dolcetti esaminati e rappresentando graficamente i risultati, grazie alle librerie Matplotlib e Seaborn.
Dai grafici a barre, possiamo intuire che il cioccolato e il gusto frutta sono presenti in circa la metà degli 85 dolcetti testati, mentre altri ingredienti sono meno diffusi.
Quello che segue è ciò che si ottiene richiedendo un’analisi di tipo statistico-descrittiva.
Queste visualizzazioni emergono senza aver scritto una riga di codice: una richiesta formulata in linguaggio naturale ha permesso a ChatGPT di estrapolare e rappresentare queste informazioni in maniera intuitiva e immediata.
L’accesso al codice è veloce e intuitivo, come mostrato nella gif, e permette di copiare direttamente le istruzioni da incollare in un file con estensione .py.
Con qualche specifica in più si possono ottenere anche visualizzazioni particolari, non prettamente standard, come la matrice con il profilo degli ingredienti per i 5 dolcetti più apprezzati.
Un’ulteriore analisi potrebbe includere l’utilizzo di regressione multivariata, dove le variabili indipendenti (i nostri ingredienti, in questo caso categoriali con valori 0 e 1) sono valutate nel loro complesso. Ad esempio, stimando la percentuale di gradimento attraverso la media delle “winpercentage” ottenute da tutti i dolcetti contenenti quegli ingredienti. Questo potrebbe fornire una comprensione più profonda del profilo composizionale di un dolcetto. ChatGPT, invocando modelli come il LinearRegression di scikit-learn, ci aiuta a esplorare queste relazioni complesse.
Con un coefficiente di determinazione R2 pari a 0.776, si potrebbe considerare significativo il modo in cui le combinazioni di ingredienti influenzano la popolarità dei dolcetti. Per esempio, se un cioccolato presenta un alto coefficiente, questo suggerisce un impatto notevole sulla percentuale di gradimento. Ad esempio il cioccolato ha un alto coefficiente, ovvero gioca un ruolo importante nella percentuale di gradimento. Quindi se volessimo lanciare sul mercato un nuovo snack questa potrebbe essere una possibile direzione d’analisi, senza limitarsi a valutare solo il profilo composizionale che emerge dalla matrice degli ingredienti dei migliori 5 dolcetti, infatti la presenza del wafer di riso soffiato sembra essere il secondo fattore per importanza.
Considerazioni finali
In conclusione ChatGPT può essere un valido aiuto per condurre analisi di carattere generale su un dataset relativamente semplice (modello dati denormalizzato in cui si dispone di un’unica tabella), ricavando insights grazie alla formulazione (prompting) del compito da eseguire (task) e del contesto (descrizione del dominio applicativo) in linguaggio naturale, senza la necessità di conoscere tecnicamente/operativamente come arrivare a quel risultato. In quest’ottica si potrebbe fornire in input il registro delle transazioni (excel o csv) di un esercizio commerciale e richiedere il totale delle vendite, il prezzo medio di vendita per categoria di prodotto o ancora la variazione percentuale rispetto al mese precedente (MoM). Quello che segue è un esempio di interazione di questo tipo, ma è necessario sottolineare che ChatGPT è un tool utile ma fallibile, va visto come un assistente e non uno specialista. Per questa ragione è fondamentale formulare senza ambiguità i task, assicurandosi di definire il contesto utile all’analisi nel modo più dettagliato possibile. Quelle che seguono sono le domande poste da ChatGPT e che costituiscono come si intuisce, il cuore di questa strategia di prompting, capace di guidare anche gli utenti meno esperti nella corretta e completa definizione della richiesta prima che questa venga presa in carico dal modello.
Output generato da ChatGPT a destra e output calcolato con uno strumento di BI, a sinistra:
Ecco perché nell’esempio che conclude questo articolo viene esportato il codice generato per rispondere alle richieste dell’utente.
Leggi tutti i nostri articoli sulla Data Tech
Vuoi scopri le ultime novità su Fivetran e nuove tecnologie di data science?
Visualitics Team
Questo articolo è stato scritto e redatto da uno dei nostri consulenti.
Condividi ora sui tuoi canali social o via email: