Come utilizzare la scienza dei dati per capire cosa rende buono il gusto del vino

Pubblicato anche nel mio blog tecnico

Data Science. È stato pubblicizzato come il lavoro più sexy del 21 ° secolo. Tutti, dalle aziende agli individui, stanno cercando di capirlo e adottarlo. E se sei un programmatore, sicuramente stai sperimentando FoMo (Paura di perderti)! Guarda quanto è diventato popolare il termine nel tempo:

Livello di popolarità di Data Science negli ultimi 5 anni

Lo stipendio medio di uno scienziato di dati è di oltre $ 120.000 negli Stati Uniti secondo Indeed. Attualmente hanno anche i lavori più pagati, con una mediana di $ 60.000. Glassdoor lo ha anche nominato il "miglior lavoro del 2016", ed è stato anche classificato il numero uno in Glassdoor.

Ma cos'è questa scienza di cui continuano a parlare? Continua a leggere!

Sommario

  • La necessità di Data Science
  • Chi trarrà il massimo da questo tutorial
  • Iniziare
  • Analisi dei dati
  • Esplorazione delle relazioni tra funzionalità e tecniche di visualizzazione dei dati
  • Rilevamento anomalo

Qual è la necessità di Data Science?

Per dirla semplicemente, Data Science ti aiuta a essere guidato dai dati. Le decisioni basate sui dati aiutano le aziende a comprendere meglio i propri clienti e a costruire grandi aziende.

Viviamo nell'era dell'esplosione delle informazioni. Le aziende raccolgono diversi tipi di dati a seconda del tipo di attività che svolgono. Ad esempio, per un negozio al dettaglio, i dati potrebbero riguardare i tipi di prodotti che i suoi clienti acquistano nel tempo e i loro importi di spesa. Per Netflix, potrebbe trattarsi di ciò che mostra la maggior parte dei loro utenti che guardano o piace e dei loro dati demografici.

Le decisioni aziendali spesso si basano su molta intuizione e conoscenza del dominio. Ora, man mano che i dati diventano sempre più grandi, diventa difficile per noi dargli un senso. Semplicemente non siamo dotati della facoltà mentale di riversare grandi set di dati pieni di tonnellate di informazioni.

Lo scopo di Data Science è di raccontarti una storia e aiutarti a visualizzarla.

Usandolo puoi:

  • Ottieni molte informazioni dai dati che altrimenti potrebbero non essere rilevati
  • Prendi decisioni più rapide, perché dopo tutto i computer sono più veloci degli umani!
  • Elimina molti pregiudizi che vanno dietro il processo decisionale. Nel corso della storia, gli umani sono sempre stati abbastanza inclini a lasciare che i loro sentimenti e pregiudizi offuscassero il loro giudizio ...

Ma a differenza degli umani, i computer non hanno bisogno di sedersi in una riunione di lavoro e partecipare a una gara incazzata sul perché una certa decisione è migliore delle altre.

Ora che abbiamo capito di cosa si tratta, è tempo di impararlo!

Chi otterrà il massimo da questo tutorial:

  • Persone con alcune conoscenze di base nella programmazione, che vogliono comprendere la scienza dei dati e le sue applicazioni.
  • Le persone che trovano matematica e statistiche un po 'travolgenti all'inizio.
  • Se sei anche lontanamente interessato ai vini, allora leggilo - solo per diamine!

Iniziamo!

In questo tutorial, capirai come analizzare un set di dati sul vino, osservare le sue caratteristiche ed estrarre diverse informazioni da esso. Dopo aver completato questo tutorial, dovrai:

  • Comprendi come Data Science può essere utilizzato per analizzare e ottenere approfondimenti dai dati.
  • Diventa esperto di vino. ;-)

Anche se non bevi, va bene - diventerai comunque un Sommelier in erba, o Enofilo (sì, questo è un termine vero!).

Nel prossimo post sul blog, vedrai la scienza dei dati applicata sotto forma di apprendimento automatico:

  • Che cos'è ML e quali tipi di problemi possono essere risolti utilizzandolo?
  • Come addestrare un classificatore usando ML per identificare buoni vini da cattivi vini.
  • Diverse metriche delle prestazioni

Sapere prima di leggere:

Presumo che tu abbia già una certa conoscenza della programmazione. Alcune conoscenze di programmazione di Python sono necessarie, quindi se lo conosci, troverai questo tutorial relativamente semplice. Se non lo fai, ti consiglio vivamente di dare un'occhiata a questo corso gratuito su Introduzione a Python.

Perché Python Perché sta rapidamente emergendo come la scelta preferita della lingua per la scienza dei dati. È abbastanza facile da imparare e apprendere e l'ecosistema Python ha molti strumenti e librerie per costruire praticamente qualsiasi cosa - che vanno dai server Web, pacchetti per l'apprendimento automatico, statistiche, apprendimento profondo, IoT. Python ha anche una delle community più attive su Internet, come lo stack overflow.

Alcune conoscenze di base di biblioteche come intorpidimento e panda saranno utili, anche se non obbligatorie.

Cosa ti servirà per questo tutorial:

  • Preferibilmente, una distribuzione basata su Linux (Ubuntu o Linux Mint) con Python installato.
  • Installa Anaconda. È un sistema di gestione dei pacchetti open source e un sistema di gestione dell'ambiente, principalmente per i programmi Python. Per addestrare e testare i nostri modelli di apprendimento automatico, utilizzerai una libreria open source molto popolare chiamata scikit-learn.
  • Scarica i file di progetto da questo repository sul tuo computer. Quindi aprire un terminale, cd nella cartella del progetto ed eseguire pip install -r Requisito.txt per installare le dipendenze.
  • In alternativa, puoi anche caricare i file di progetto su FloydHub ed eseguire i tuoi codici, senza i problemi di impostazione. Lo consiglio se non si dispone di un sistema basato su Linux.

Utilizzerai un file notebook IPython (Interactive Python) per eseguire il tuo codice. Dopo aver scaricato i file di progetto, apri il tuo terminale, cd nella cartella del progetto ed esegui jupyter-notebook. Questo aprirà una nuova finestra sul tuo browser predefinito sulla porta 8888. Se stai usando FloydHub, lo stesso file notebook può essere eseguito anche da lì.

Troverai due file di notebook IPython. Seleziona quello chiamato game-of-wines.ipynb dall'elenco. L'altro file del blocco note contiene il codice sorgente completo per questa esercitazione.

Come usare questo notebook

Il notebook ha già alcuni codici modello e spiegazioni all'interno delle celle per iniziare. In alcuni punti, troverai che il codice è già stato scritto per te, solo per renderlo più semplice. Troverai anche commenti e link dove necessario.

Per eseguire il codice in una cella, fai clic su di esso con il mouse, quindi seleziona l'opzione Esegui sulla barra del titolo del libro.

Va bene, salute! Sorseggiamo ... whoops, studiamo i nostri dati sul vino.

L'altro giorno stavo cercando su Internet alcuni interessanti dati open source. Kaggle ha una comunità molto attiva in cui puoi facilmente cercare diversi tipi di set di dati e risolvere le sfide. Un altro posto fantastico in cui cercare set di dati è il repository di Machine Learning della University of California Irvine.

Il repository UCI Machine Learning ha due serie di dati sul vino. Un set di dati contiene informazioni sui vini rossi e l'altro per i vini bianchi. La cartella del progetto contiene già entrambi. Questi vini sono stati prodotti nel Vinho Verde, una regione nel nord del Portogallo.

Innanzitutto, importerai alcune librerie necessarie per la nostra analisi dei dati. Fare clic sul blocco di celle, quindi selezionare il comando Esegui per caricarli tutti.

Successivamente, caricheremo il nostro set di dati nel nostro notebook e visualizzeremo le prime 5 righe. Digita questo codice nel blocco di celle del tuo notebook e quindi eseguilo:

# Carica il set di dati dei vini rossi
data = pd.read_csv ("data / winequality-red.csv", sep = ';')
# Visualizza i primi cinque record
visualizzazione (data.head (n = 5))

Stampa questo output:

Come puoi vedere, ci sono circa 12 caratteristiche diverse per ogni vino nel set di dati. L'ultima colonna, la qualità, è una metrica di quanto è stato valutato un vino specifico, tra 1 e 10.

Vediamo se una di queste colonne ha informazioni mancanti. Digita questo nel blocco di celle:

data.isnull (). qualunque ()

L'output ci mostra che nessuna colonna è vuota.

È possibile ottenere ulteriori informazioni aggiuntive sul nostro set di dati eseguendo:

data.info ()

Proviamo ad eseguire alcune analisi preliminari sui nostri vini. Per i nostri scopi, consideriamo tutti i vini con rating 7 o superiore di ottima qualità, vini con 5 e 6 di media qualità e vini con meno di 5 di qualità insipida:

n_wines = data.shape [0]
# Numero di vini con valutazione di qualità superiore a 6
quality_above_6 = data.loc [(data ['quality']> 6)]
n_above_6 = quality_above_6.shape [0]
# Numero di vini con valutazione di qualità inferiore a 5
quality_below_5 = data.loc [(data ['quality'] <5)]
n_below_5 = quality_below_5.shape [0]
# Numero di vini con un punteggio di qualità compreso tra 5 e 6
quality_between_5 = data.loc [(data ['quality']> = 5) & (data ['quality'] <= 6)]
n_between_5 = quality_between_5.shape [0]
# Percentuale di vini con valutazione di qualità superiore a 6
greater_percent = n_above_6 * 100 / n_wines
# Stampa i risultati
print ("Numero totale di dati sul vino: {}". format (n_wines))
print ("Vini con punteggio 7 e superiore: {}". format (n_above_6))
print ("Vini con valutazione inferiore a 5: {}". formato (n_below_5))
print ("Vini con punteggio 5 e 6: {}". format (n_between_5))
print ("Percentuale di vini con qualità 7 e superiore: {: .2f}%". format (Greater_percent))
# Alcune ulteriori analisi dei dati aggiuntivi
Display (np.round (data.describe ()))

Puoi anche visualizzare le distribuzioni in termini di qualità su un grafico:

# Visualizza le caratteristiche continue distorte dei dati originali
vs.distribution (dati, "qualità")

Come puoi vedere, la maggior parte dei vini rientra nella qualità media. Ci sono meno vini di altissima qualità e ottima degustazione e pochissimi vini che non sono così buoni.

Possiamo anche usare il metodo di descrizione dei panda per ottenere statistiche utili, come media, media e deviazione standard delle funzionalità nei nostri dati:

Alcune statistiche utili che dovresti conoscere:

  • Media (media): forse la più familiare di tutte. Basta sommare tutti i valori di esempio per una determinata funzione, quindi dividerlo per il numero di campioni.
  • Mediana: per prima cosa disponi tutti i valori del campione in ordine numerico, in un elenco. Il numero medio in questo elenco sarà la mediana.
  • Modalità: il valore che si verifica maggiormente in un elenco di campioni.
  • Intervallo: la differenza tra il valore più alto e i valori più bassi in un elenco.
  • Deviazione standard: viene utilizzata per misurare la dispersione di valori in un set. Prima calcola la media, quindi sottrai ogni numero nell'elenco con la media e piazza il risultato. Quindi calcola la media di quelle differenze al quadrato e infine calcola la radice quadrata di essa.

Ora, il passo successivo è studiare le caratteristiche del nostro set di dati in modo più dettagliato.

La qualità del vino dipende da un gruppo di proprietà chimiche che ne influenzano il gusto, l'aroma e il sapore. Quindi sì, anche se la vinificazione è considerata un'arte, in realtà è piuttosto scientifica se ci pensi.

In Data Science, avere una conoscenza del dominio può essere il fattore chiave di differenziazione tra mediocre e grandi intuizioni.

È ora di diventare più saggi con il nostro vocabolario sul vino!

I vini contengono proporzioni variabili di zuccheri, alcool, acidi organici, sali di acidi minerali e organici, composti fenolici, pigmenti, sostanze azotate, pectine, gengive, mucillagini, composti aromatici volatili (esteri, aldeidi e chetoni), vitamine, sali e anidride solforosa .

Nella degustazione di vini, il termine acidità si riferisce alle caratteristiche fresche, aspre e acide del vino. Nell'acino si trovano tre acidi primari: acido tartarico, acido malico e citrico. Sono valutati in relazione a quanto bene l'acidità bilancia la dolcezza e le componenti amare del vino, come i tannini.

  • Acidità fissa

L'acidità titolabile, a volte indicata come acidità fissa, è una misurazione della concentrazione totale di acidi titolabili e di ioni idrogeno liberi presenti nel vino. Una cartina di tornasole può essere utilizzata per identificare se una determinata soluzione è acida o basica. Gli acidi titolabili più comuni sono acido tartarico, acido malico, citrico e carbonico. Questi acidi, insieme a molti altri in quantità minori, si trovano naturalmente nelle uve o sono creati attraverso il processo di fermentazione.

  • Acidità Volatile

L'acidità volatile è principalmente causata da batteri nel vino che creano acido acetico - l'acido che conferisce all'aceto il suo sapore e aroma caratteristici - e il suo sottoprodotto, l'acetato di etile. L'acidità volatile potrebbe essere un indicatore di deterioramento o errori nei processi di produzione - causati da cose come uva danneggiata, vino esposto all'aria e così via. Questo fa sì che i batteri dell'acido acetico entrino e prosperino, dando origine a sapori e odori sgradevoli. Gli esperti di vino possono spesso dirlo semplicemente annusandolo!

  • Acido citrico

L'acido citrico si trova generalmente in quantità molto ridotte nelle uve da vino. Agisce come conservante e viene aggiunto ai vini per aumentare l'acidità, integrare un sapore specifico o prevenire i pericoli ferrici. Può essere aggiunto ai vini finiti per aumentare l'acidità e dare un sapore "fresco". L'aggiunta eccessiva, tuttavia, può rovinare il gusto.

  • Zuccheri residui

Lo zucchero residuo, o RS in breve, si riferisce a tutti gli zuccheri d'uva naturali che rimangono dopo la cessazione della fermentazione (sia apposta che no). Il succo di uva da vino inizia intensamente dolce e la fermentazione consuma quello zucchero mentre i lieviti si nutrono di esso.

Durante la vinificazione, il lievito in genere converte tutto lo zucchero in alcool producendo un vino secco. Tuttavia, a volte non tutto lo zucchero viene fermentato dal lievito, lasciando un po 'di dolcezza rimanente.

Per produrre un vino che abbia un buon sapore, la chiave è avere un perfetto equilibrio tra dolcezza e acidità nella bevanda.

  • cloruri

La quantità di cloruri presenti in un vino è di solito un indicatore della sua "salsedine". Questo è di solito influenzato dal territorio in cui cresceva l'uva da vino, dai metodi di coltivazione e anche dal tipo di uva. Troppa salsedine è considerata indesiderabile. La giusta proporzione può rendere il vino più sapido.

  • Livelli di anidride solforosa

L'anidride solforosa esiste nel vino in forme libere e legate e le combinazioni sono indicate come SO2 totale. È il conservante più utilizzato, solitamente aggiunto dai produttori di vino per proteggere il vino dagli effetti negativi dell'esposizione all'aria e all'ossigeno. I vini con contenuto di anidride solforosa aggiunto di solito hanno "Contiene solfiti" sulle loro etichette.

Agisce come un agente igienizzante - aggiungendolo di solito uccide batteri o lieviti indesiderati che potrebbero entrare nel vino e rovinarne il gusto e l'aroma. Fu usato per la prima volta nella vinificazione dai romani, quando scoprirono che bruciare candele di zolfo all'interno di recipienti di vino vuoti li mantiene freschi e privi di odore di aceto. Abbastanza pulito, eh?

  • Densità

Conosciuto anche come gravità specifica, può essere utilizzato per misurare la concentrazione di alcol nei vini. Durante la fermentazione, lo zucchero nel succo viene convertito in etanolo con anidride carbonica come gas di scarico. Il monitoraggio della densità durante il processo consente un controllo ottimale di questa fase di conversione per vini di altissima qualità. I vini più dolci hanno generalmente densità più elevate.

  • pH

Il pH indica la potenza dell'idrogeno, che è una misura della concentrazione di ioni idrogeno nella soluzione. Generalmente, le soluzioni con un valore di pH inferiore a 7 sono considerate acide, con alcuni degli acidi più forti vicini a 0. Le soluzioni superiori a 7 sono considerate alcaline o basiche. Il valore del pH dell'acqua è 7, in quanto non è né un acido né una base.

  • solfati

I solfati sono sali di acido solforico. Non sono coinvolti nella produzione di vino, ma alcuni produttori di birra usano solfato di calcio - noto anche come gesso dei birrai - per correggere le carenze di minerali nell'acqua durante il processo di produzione della birra. Aggiunge anche un po 'di gusto "deciso".

  • alcool

Ah sì, alcool - la chiave per una festa di successo! Le bevande alcoliche esistevano almeno dal periodo neolitico (10.000 a.C.). Bere in piccole quantità ti dà caldi sentimenti sfocati all'interno e ti rende più socievole. Naturalmente, anche dosi più elevate possono farti svenire.

Alcol diligentemente, amico dei miei data scientist!

Esplorazione delle relazioni tra funzionalità e visualizzazioni

Ora che hai qualche conoscenza del dominio sul vino, è tempo di esplorare di più. Il nostro set di dati contiene una serie di funzioni come abbiamo visto sopra, come i livelli di alcol, la quantità di zucchero residuo e il valore del pH. Alcune di queste funzionalità potrebbero dipendere da altre funzionalità, altre no. Alcuni di essi potrebbero influire anche sulle nostre valutazioni di qualità.

Nella scienza dei dati o nell'apprendimento automatico, è abbastanza importante studiare le caratteristiche che compongono i nostri dati e vedere se vi sono correlazioni tra loro.

Ad esempio, il livello di pH influenza i livelli di acidità fissi? I livelli di acidità volatile hanno qualcosa a che fare con la qualità? Le persone trovano vini con una maggiore gradazione alcolica per essere più gustosi o di migliore qualità?

Fortunatamente per noi, Python ha librerie fantastiche che fanno il duro lavoro di fornire diversi tipi di visualizzazioni. Proviamo a tracciare un diagramma a dispersione con i nostri dati e osserviamo cosa ci mostra.

pd.plotting.scatter_matrix (data, alpha = 0.3, figsize = (40,40), diagonale = 'kde');

Dal grafico sopra riportato possiamo ottenere alcuni dettagli interessanti. Per alcune delle funzionalità, la distribuzione sembra essere abbastanza lineare. Per alcuni altri, la distribuzione sembra essere distorta negativamente. Quindi questo conferma i nostri sospetti iniziali: ci sono davvero alcune interessanti dipendenze tra alcune delle caratteristiche.

Siamo in grado di tracciare una mappa di calore delle correlazioni tra le funzionalità, che ci aiuterà a ottenere ulteriori approfondimenti.

correlazione = data.corr ()
# display (correlazione)
plt.figure (figsize = (14, 12))
heatmap = sns.heatmap (correlazione, annot = True, linewidths = 0, vmin = -1, cmap = "RdBu_r")

Come puoi vedere, i quadrati con valori positivi mostrano correlazioni dirette tra le funzionalità. Più alti sono i valori, più forti sono queste relazioni - saranno più rossastre. Ciò significa che, se una funzionalità aumenta, anche l'altra tende ad aumentare e viceversa.

I quadrati con valori negativi mostrano una correlazione inversa. Più questi valori diventano negativi, più sono inversamente proporzionali e saranno più blu. Ciò significa che se il valore di una funzione è maggiore, il valore dell'altra diventa inferiore.

Infine, i quadrati vicini allo zero indicano quasi nessuna co-dipendenza tra questi insiemi di funzionalità.

Abbastanza interessante eh? Esploriamo queste correlazioni in modo più dettagliato.

  • pH vs. acidità fissa
#Visualizza la correlazione tra pH e acidità fissa
#Creare un nuovo frame di dati contenente solo colonne pH e acidità fissa per visualizzare le loro correlazioni
fixedAcidity_pH = data [['' pH ',' fixed acidity ']]
# Inizializza una griglia comune con il dataframe, usando la libreria Seaborn
gridA = sns.JointGrid (x = "acidità fissa", y = "pH", dati = fixedAcidity_pH, dimensione = 6)
# Disegna un diagramma di regressione nella griglia
gridA = gridA.plot_joint (sns.regplot, scatter_kws = {"s": 10})
# Disegna un diagramma di distribuzione nella stessa griglia
gridA = gridA.plot_marginals (sns.distplot)

Questo diagramma a dispersione mostra come i valori del pH cambiano con il variare dei livelli di acidità fissa. Possiamo vedere che, con l'aumentare dei livelli di acidità fissi, i livelli di pH diminuiscono. Ha senso, no? Un livello di pH più basso è, dopo tutto, un indicatore di elevata acidità.

  • Acidità fissa vs. acido citrico
fixedAcidity_citricAcid = data [['' citric acid ',' fixed acidity ']]
g = sns.JointGrid (x = "acidità fissa", y = "acido citrico", dati = fixedAcidity_citricAcid, size = 6)
g = g.plot_joint (sns.regplot, scatter_kws = {"s": 10})
g = g.plot_marginals (sns.distplot)

All'aumentare della quantità di acidi citrici, aumentano anche i livelli di acidità fissa.

  • Acidità volatile vs qualità
fig, axs = plt.subplots (ncols = 1, figsize = (10,6))
sns.barplot (x = 'qualità', y = 'acidità volatile', dati = volatileAcidità_qualità, ascia = asce)
plt.title ("acidità volatile VS di qualità")
plt.tight_layout ()
plt.show ()
plt.gcf (). cancellare ()

Una qualità superiore è solitamente associata a bassi livelli di acidità volatile. Questo ha senso, perché l'acidità volatile è un indicatore di deterioramento e potrebbe dare origine a aromi spiacevoli, coerenti con le nostre conoscenze di dominio.

  • Alcol vs. qualità
fig, axs = plt.subplots (ncols = 1, figsize = (10,6))
sns.barplot (x = 'quality', y = 'alcohol', data = quality_alcohol, ax = axs)
plt.title ("qualità VS alcol")
plt.tight_layout ()
plt.show ()
plt.gcf (). cancellare ()

Hmm. Sembra che alla maggior parte delle persone piacciano in genere i vini che contengono una percentuale più elevata di alcol, quelli che li fanno sentire stupidi!

Prova a sperimentare altre funzionalità da solo sul notebook e vedi se rivelano qualcosa. Se sono collegati in qualche modo, quale pensi possa essere la ragione? L'esplorazione rivelerà più intuizioni nascoste.

Aiuta a ricordare che la correlazione non implica sempre la causalità. A volte, quando si tracciano grafici per due funzioni, potrebbe mostrarsi uno schema che potrebbe essere solo una coincidenza. Ecco un esempio:

http://philosophy.hku.hk/think/sci/inference.php. Puoi vedere altri esempi qui.

Allora perché lo facciamo? Serve come base utile per vedere se l'integrità del nostro set di dati è intatta!

Ad esempio, sappiamo per certo che i livelli di pH devono diminuire se i livelli di acidità aumentano. Ma se i nostri grafici mostrano il contrario, questo è un indicatore del fatto che qualcosa non va, il nostro set di dati non è affidabile. E questo potrebbe rendere sbagliate le nostre previsioni! Ecco dove avere di nuovo conoscenza del dominio si rivela utile.

Rilevamento anomalo

Diciamo nel regno di Lannisters, ci sono circa 10.000 persone adulte. La maggior parte di essi ha un'altezza media (sopra i 5 piedi), ma ci sono circa 100 persone che sono nane. Questi sono anche chiamati valori anomali, perché sono valori estremi che non rientrano nell'intervallo previsto di altezze. In altre parole, un valore anomalo è un punto dati che è significativamente distante dalla maggior parte degli altri punti dati.

Perché contano? Perché a volte possono causare molti problemi nell'analisi dei dati. Supponiamo che tu stia provando a calcolare la temperatura media di 10 oggetti selezionati casualmente nella tua stanza e nove di essi siano tra 20 e 25 gradi Celsius. Ma hai lasciato il forno acceso ed è a 175 ° C. La temperatura media sarà tra 20 e 25 ° C, ma la temperatura media sarà tra 35,5 e 40 ° C. In questo caso, la mediana riflette meglio la temperatura di un oggetto campionato casualmente, perché rientra in quello che ci si aspetta dalla tua stanza.

Quindi, scoprire Outlier è fondamentale, perché valori molto piccoli o molto grandi possono influenzare negativamente la nostra analisi dei dati e, di conseguenza, le nostre previsioni. Quindi a volte diventa necessario rimuoverli.

Il metodo di Tukey per rilevare i valori anomali

Ho letto un post davvero bello su questo metodo che potresti leggere in seguito. Ma in breve, ecco come funziona la tecnica:

  • Innanzitutto, si inizia con la divisione dei dati ordinati in quattro intervalli, in modo tale che le sezioni risultanti contengano ciascuna circa il 25% del totale dei punti dati. Il valore a cui questi intervalli sono divisi sono chiamati Quartili.
  • Quindi sottrai il 3 ° quartile dal 1 ° quartile per ottenere l'intervallo interquartile (IQR). Questo è il 50% medio e contiene la maggior parte dei dati.
  • Qualsiasi punto dati che superi 1,5 volte l'IQR sarebbe considerato un valore anomalo.

Eseguire quanto segue nel blocco di codice successivo per stampare valori anomali per tutte le funzionalità nel set di dati.

# Per ogni funzione trova i punti dati con valori estremamente alti o bassi
per funzionalità in data.keys ():

    # TODO: calcola Q1 (25 ° percentile dei dati) per la funzione data
    Q1 = np.percentile (data [caratteristica], q = 25)
 
    # TODO: calcola Q3 (75 ° percentile dei dati) per la funzione data
    Q3 = np.percentile (data [caratteristica], q = 75)
 
    # TODO: utilizzare l'intervallo interquartile per calcolare un passaggio anomalo (1,5 volte l'intervallo interquartile)
    interquartile_range = Q3 - Q1
    step = 1.5 * interquartile_range
 
    # Visualizza i valori anomali
    print ("Punti dati considerati valori anomali per la funzione '{}':". formato (funzione))
    display (data [~ ((data [feature]> = Q1 - step) & (data [feature] <= Q3 + step))])
 
# OPZIONALE: selezionare gli indici per i punti dati che si desidera rimuovere
outlier = []
# Rimuovere gli outlier, se presenti
good_data = data.drop (data.index [outlier]). reset_index (drop = True)

E ... abbiamo finito!

Spero che ti sia divertito con questo tutorial. Ora sai di più sulla scienza dei dati di prima!

L'unica volta in cui ti sentirai davvero Tyrion Lannister

Certo, c'è molto di più di quello che sembra. Se desideri saperne di più, ti consiglio vivamente di dare un'occhiata a questi:

  • Corsi di statistica e probabilità
  • Introduzione a Python per Data Science
  • I migliori corsi di data science su Internet
  • Come diventare un Data Scientist

Ma per ora, fai una pausa e poi vai al prossimo tutorial, dove ti immergerai in alcune cose di apprendimento automatico di base. Imparerai a costruire un modello di apprendimento automatico, al quale se gli attribuissi gli attributi del vino, ti darebbe una valutazione di qualità accurata!

Ti è piaciuto quello che hai letto? Devi iscriverti. Non perderò il tuo tempo.

Sentiti libero di lasciare un commento se hai domande o se desideri un tutorial su un argomento interessante!