Blog.

Exploratory Data Analysis | Guida in italiano


Autore
Andrea Provino
Data
Tempo di lettura
8 minuti
Categoria
Data Science, Guide

exploratory_data_analysis_machine_learning_R_Studio_guida_in_italiano

L‘Exploratory Data Analysis, spesso abbreviato in EDA, è una tecnica usata nel campo della Data Science per approfondire la conoscenza del dataset su cui si intende lavorare, operazione cruciale per svolgere su di esso qulasiasi tipo di attività

Prima di passare al codice, con la libreria di Scikit-Learn, è bene comprendere le trappe fondamentali dell’Exploratory Data Analysis.

Exploratory Data Analysis : ecco cos’è in pratica

L’EDA non è un insieme di regole che devono essere rigidamente seguite, piuttosto è un processo creativo che operando attraverso il ‘trial and error‘ consente di ottenere una sempre maggiore conoscenza del proprio dataset.

E’ uno ‘stato mentale‘, un modo di procedere; cioè è buona norma fare le cose in questo ordine seguendo il modello impartito dall’EDA. Nulla vieta però di sconvolgere le carte in tavola o evitare completamente di seguire l’Exploratory Data Analysis nella forma presentata in questa guida.

Trattandosi di un processo creativo, è sbagliato pensare di ottenere fin da subito ottimi risultati: l’EDA richiede tempo e parecchi tentativi.

Infatti, è un ciclo iterativo in cui:

  • Ti poni domande sul dataset
  • Visualizzi, trasformi e modelli il tuo dataset in cerca di risposte
  • Usi ciò che impari per rifinire le tue domande, e generarne di altre.

Il grande strumento: la domanda

L’obiettivo dell’Exploratory Data Analysis è comprendere il tuo dataset.

Il miglior modo per poterlo fare è usare le giuste domande per guidarti, esplorando così tutto ciò che è nascosto all’interno del dataset: connessioni e relazioni tra variabili indipenedenti e dipendenti.

La regola aurea per fare le giuste domande è farne tante.

L’immagine che mi viene in mente è quella del tavolo di un’amante del fai da te. Decine di strumenti, pezzi di plastica sparsi qua e là, tavole di legno bucate, viti, cacciaviti, colla, segatura e residui di lavorazione ovunque.

Tanto caos, tante cose apparentemente inutili ma che in realtà gli hanno permesso di produrre quel piccolo capolavoro che ora può vantare di aver costruito.

Allo stesso modo, servono tante domande per produrre le migliori domande che ti possano far conoscere appieno il tuo dataset.

Se non sai dove guardare, queste due domande sono degli ottimi punti di partenza:

  • Che tipo di variazione presentano le tue variabili?
  • Che tipo di covariazione c’è tra la tue variabili?

Andiamo ora a vedere cosa significano variazione e covariazione. Seguimi!

Variazione

Per variazione si intende qualcosa di molto semplice e intuitivo:

la tendenza dei valori di una variabile a cambiare da una misurazione all’altra.

Ad esempio, la velocità ‘istantanea’ di un’auto in un viaggio cambierà in ogni misurazione; è bene tenere presente che la variazione potrebbe anche dipendere da eventuali errori di misurazione.

Ogni variabile ha il proprio modello di variazione, il proprio pattern, comprenderlo potrebbe rivelarsi cruciale.

Il miglior modo per capire il pattern è visualizzare la distribuzione dei valori di una variabile.

Per farlo si possono usare diversi programmi. Uno molto impiegato nell’ambito della Data Science è RStudio che mette a disposizione parecchi strumenti, consentendo la creazione di grafici dettagliati in pochi secondi.

In questa fase dovrebbero sorgere alcune domande che potrebbero indurti a chidederti se le variazioni dei valori di una variabile possano spiegare il comportamento di un’altra variabile.

Outliers

In statistica, la parola outlier fa riferimento ad un valore inusuale, anomalo e aberrante, in un insieme di osservazioni, nel nostro caso il dataset.

Visivamente:

Il puntino in alto a sinistra è un outlier

In un’ottica improntata al campo delle intelligenze artificiali, gli outliers sono entità delicate.

Trattandosi di data points che risultano estranei al pattern tipico dei dati, è fondamentale capirne l’origine perché una loro errata valutazione potrebbe compromettere i passi successivi, come il tentativo di prevedere il valore di una variabile dipendente.

Questo perché gli outliers potrebbero semplicemente essere frutto di errori commessi nella fase di raccolta dati (un sensore malfunzionante, ad esempio) o al contrario suggerrire importanti spunti che rimandano a leggi nascoste che regolano il rapporto tra le variabili del dataset.

Il succo del discorso è:

è importante non sottovalutare gli outliers.

Alcuni consigli:

  • non dare mai nulla per scontato;
  • ingrandisci un grafico, riducendo la scala lungo gli assi;
  • prova ad invertire gli assi.

Se, dopo aver eseguito la tua serie di analisi, hai ancora dubbi sulla natura degli outliers puoi chiederti se abbiano un qualche effetto sul risultato finale, tenendo anche a mente il tipo di algoritmo che intendi impiegare.

Infatti gli algoritmi di regressione, sono più sensibili agli outliers degli alberi decisionali.

In conclusione se l’effetto è minimo, e continui a ignorare la natura dell’outlier, è consigliabile sostiturne il valore con un missing value.

In caso contrario, la loro sostituzione dovrebbe essere accompaganta da una forte motivazione che ne giustifichi l’atto.

Quali sono però queste giuste motivazioni? Eccone alcune:

  • misurazioni sospette (suspicius measurements), ossia valori evidentemente fuori scala che dipendono da errori di raccolta dati.
  • origine da popolazione differente, ossia valori provenienti da dataset che prendono in esame una sotto realtà di quella considerata.
  • inutile all’applicazione, se il tuo obiettivo è realizzare un modello per case moderne costruite negli ultimi 10 anni, un’abitazione del 1950 costituisce un outlier (anche se rappresenta un’osservazione legittima).

Sostituire è diverso dal cancellare.

Pensa alla catena di produzione.

Se al punto 4 di un processo produttivo di 8 fasi il prodotto non rientra nelle specifiche richieste viene interamente scartato.

In modo analogo potresti pensare che se una delle variabili di un data point è un outlier sia buona cosa cancellare l’intero elemento. Così facendo, qualora avessi tra le mani un dataset di bassa qualità (con pochi data points) ti ritroveresti presto senza dati su cui lavorare.

Invece, è consigliabile sostituire gli outliers con dei missing values, così da non compromettere eccessivamente la struttura dati.

In questo modo l’exploratory data analysis consente di correggere le eventuali incongruenze.

Overplotting

Quando la dimensione del dataset che si intende visualizzare è eccessiva, o la variazione è ridotta, si verifica il fenomeno di overplotting.

In questa guida, trovi una spiegazione più approfondita e alcuni consigli per risolvere il problema.

Overplotting: cos’è e come porvi rimedio | Towards Data Science

Covariazione

Mentre la variazione riguarda una singola variabile, la covarazione è la relazione che descrive il comportamento tra più varaibili.

Il modo migliore per individuare la covariazione è confrontare la variazione di più variabili, così da scoprire se è in che modo sono correlate.

Tipo di variabili | Discrete o lineari

Lavorando con delle variaibili è opportuno chiedersi quale sia la loro natura.

Parliamo di variabili dette categoriali o discrete, quando queste assumono solo valori fissi e determinati.

Sono variabili discrete il colore degli occhi, il tipo di benzina, le materie scolastiche, ecc.

Invece, parliamo di variaibli continue o lineari, quando queste possono assumere un qualsiasi valore all’interno di un determinato dominio.

Sono variabili lineari il numero di ciglia, i litri di benzina erogati, il numero di ore di studio per ogni materia, ecc.

Distinguere la natura delle variabili è importante per usare i migliori strumenti, ossia i grafici adatti al tipo di variabile.

I grafici a barre sono ottimi per visualizzare il rapporto tra varaibili discreta-continua, mentre i grafici a dispersione sono maggiormente consigliabili dove le varibili sono di natura continua-continua.

La covariazione tra variabili continue

In realtà ogni grafico a dispersione mostra la covariazione tra due variabili continue.

In questo caso, la covariazione assume un pattern più o meno riconscibile: andamento logaritmico, lineare o magari esponenziale.

La covariazione tra variabili categoriali

Visualizzare la covariazione tra due variabili di tipo categoriale è possibile prendendo in considerazione il numero di osservazioni per ogni combinazione.

In figura, diamanti con taglio ‘Ideal’ e colore ‘G’ sono i più numerosi.

In questo caso la covariazione appare come una forte correlazione tra specifiche coppie x-y.

Modelli e pattern | Il prodotto dell’Exploratory data Analysis

Scovare eventuali pattern tra variabili di un dataset è cruciale: potrebbe generare domande rivelatrici capaci di estendere la tua conoscenza sul quel preciso insieme di dati.

Questo perché se dovesse esistere una reale covariazione, la relazione tra le due variabili assumerebbe la forma di un patterm riconoscibile.

Se dovessi individuarne uno chiediti:

  • è frutto di una coincidenza?
  • come puoi descrivere la relazione mostrata dal pattern?
  • quanto è forte questa relazione?
  • esistono, e quali sono, altre varibili implicate nel determinare il pattern?
  • il pattern permane o scompare indagando su sottogruppi del dataset?

Il grafico a dispersione, che mette in relazione il tempo di attesa in funzione del numero di eruzioni, mostra un pattern distringuibile: l’exploratory data analysis serve proprio a questo.

Infatti, esistono due cluster: ad eruzioni numerose sono associati tempi di attesa superiori.

Individuare pattern di questo tipo è utile perché a partire da una varaibile è possibile fare previsioni più accurate sul’altra.

Quallora il pattern fosse frutto di una relazione casuale, si potrebbe comunque usare l’informazione per eseguire un maggiore controllo sul valore dei dati.

Conclusione | Principio di Pareto

Questa non è la guida ‘definitiva‘ o quella contenente ‘tutto quello che devi sapere‘, sarebbe impensabile.

Però credo contenga, a grandi linee, gli stumenti necessari per fare una buona Exploratory Data Analysis: a fini personali, per l’autoapprendimento.

In pratica c’è il 20% utile per padroneggiare l’80% delle tecniche.

Ho seguito il libro r4ds, a cui copia grauita la puoi trovare qui.

Per avere qualche dettaglio operativo e professionale, puoi consultare la guida introduttiva di Google qui.

Alla prossima!

Un caldo abbraccio, Andrea!

Taggeddata sciencedata scientistmachine learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum