Salta al contenuto
Note per Studenti Statistica per il machine learning

Statistica per il machine learning

In questa pagina 5

Prima di addestrare un modello bisogna capire i dati che gli si danno in ingresso. Questa nota raccoglie gli strumenti statistici usati a questo scopo. La parte grafica e le correlazioni sono in Correlazione e visualizzazione dei datiLa correlazione di Pearson $r=\sum(X_i-\bar X)(Y_i-\bar Y)/\big(\sqrt{\sum(X_i-\bar X)^2}\sqrt{\sum(Y_i-\bar Y)^2}\big)\in[-1,1]$ misura la relazione lineare tra due variabili (covarianza divisa per le deviazioni standard); correlazione non implica causalità. Serve a capire quali variabili contano per il target e a eliminare quelle quasi duplicate (|r| molto alto). Gli indicatori di sintesi non bastano (quartetto di Anscombe, Datasaurus): vanno affiancati ai grafici: istogramma, KDE, box plot, violin plot, heatmap di correlazione, scatter plot e matrice di scatter plot.Correlazione e visualizzazione dei dati →; gli stessi calcoli fatti con Python sono in Python per il machine learning - NumPy, pandas e MatplotlibIl corso usa Python in Jupyter/Colab. Servono: variabili e tipi, if/for/while, funzioni (i tipi immutabili si passano per valore: per cambiare un numero la funzione deve restituirlo), classi, e le strutture list, tuple, set, dict. NumPy gestisce array e algebra lineare (assi, broadcasting, @, hstack, np.cov(rowvar=False)), pandas le tabelle (read_csv, filtri, value_counts, statistiche; var con $n-1$ contro np.var con $n$), Matplotlib e seaborn i grafici (istogrammi, box plot, heatmap, pair plot). Trappole tipiche: forma $(n,)$ contro $(n,1)$, asse sbagliato, statistiche calcolate sul dataset intero.Python per il machine learning - NumPy, pandas e Matplotlib → e negli esercizi Esercizio - Statistica descrittiva, quartili e standardizzazione di un dataset e Esercizio - Correlazione di Pearson su tre e quattro osservazioni. Il quadro generale è in Introduzione al machine learningIl machine learning (ML) è la parte dell'intelligenza artificiale che costruisce soluzioni a partire dai dati e non da regole scritte a mano: un modello matematico con parametri liberi viene addestrato su esempi storici e poi usato su dati nuovi. Si distingue tra apprendimento supervisionato (dati $(x,y)$, si impara la mappa $x\mapsto y$: regressione se $y$ è un numero, classificazione se è una categoria), non supervisionato (solo $x$, si cercano struttura e gruppi) e per rinforzo (stato, azione, ricompensa). Un progetto ML non è «plug and play»: segue le fasi problema, raccolta, pulizia, modellazione, rilascio, e va valutato su dati mai visti; senza dati non c'è modello, alcuni fenomeni sono imprevedibili, la generalizzazione fuori dal dominio di addestramento non è garantita.Introduzione al machine learning →.

Compiti, modelli e dati

Tre parole da non confondere.

  • Il compito (task) è il problema specifico che si vuole risolvere: prevedere un prezzo, riconoscere un fiore, trovare gruppi di clienti.
  • Il modello è una rappresentazione matematica dei pattern e delle relazioni nei dati: viene addestrato con un algoritmo per fare previsioni o decisioni a partire da dati in ingresso.
  • I dati possono essere di tipo diverso (tabelle, immagini, testo) e il modello va scelto di conseguenza.

La matrice di progetto

Definizione (matrice di progetto o design matrix). I dati tabulari si organizzano in una matrice XX con nn righe e pp colonne:

  • ogni riga è un'osservazione (o campione, sample): una volta in cui il fenomeno da descrivere compare nei dati storici, quindi nn è il numero di osservazioni;
  • ogni colonna è un attributo (o variabile, o feature): una grandezza potenzialmente legata al fenomeno, quindi pp è il numero di variabili.

Esempio. Per prevedere il prezzo delle case, ogni riga è una casa venduta e le colonne sono metri quadri, numero di stanze, anno di costruzione: con 1 000 case e 3 attributi, XX ha n=1000n=1000 righe e p=3p=3 colonne.

Più grande è meglio? In generale servono osservazioni nn numerose, ma il valore di pp è un compromesso: più variabili possono portare più informazione, ma anche ridondanza e rumore (vedi Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →). Non sempre è facile definire che cosa sia una «osservazione»: per un sistema descritto da serie temporali, per esempio, si calcolano grandezze su ciascuna finestra temporale e ogni finestra diventa una riga.

Che cosa deve valere prima di dare XX al modello.

  • I dati devono essere coerenti.
  • Se non c'è una conoscenza a priori, tutte le variabili vanno trattate allo stesso modo.
  • Non si devono fornire informazioni ridondanti o inutili: il modello deve avere vita facile.

Gli strumenti statistici di questa nota aiutano a rispettare queste condizioni.

La pipeline e il ruolo della statistica

La pipeline di ML ha tre blocchi: preprocessing (capire e preparare i dati), costruzione del modello, valutazione. La statistica interviene in tutti e tre:

Fase Uso della statistica
Preprocessing statistiche descrittive (media, varianza, distribuzioni) per esplorare e pulire, trovare pattern e outlier; correlazione, PCA e scaling per l'ingegneria delle feature
Costruzione probabilità e incertezza (modelli probabilistici), generalizzazione, overfitting, compromesso bias-varianza
Valutazione metriche come MSE, MAE, accuracy, precision, recall

I momenti statistici

Definizione (momento di ordine kk). Per una variabile aleatoria XX il momento di ordine kk è E[Xk]E[X^k] (valore atteso: Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →; momenti e varianza: Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →): μk=∫−∞+∞xkf(x) dx  (continua),μk=∑xxk P(X=x)  (discreta).\mu_k=\int_{-\infty}^{+\infty}x^k f(x)\,dx\ \ \text{(continua)},\qquad \mu_k=\sum_x x^k\,P(X=x)\ \ \text{(discreta)}.

Dai momenti si costruiscono quattro indicatori che descrivono la forma della distribuzione.

Formula (indicatori teorici).

  • Media: E[X]=μE[X]=\mu (tendenza centrale).
  • Varianza: Var⁡(X)=E[(X−μ)2]=σ2\operatorname{Var}(X)=E[(X-\mu)^2]=\sigma^2 (dispersione).
  • Asimmetria (skewness): Skew⁡(X)=E[(X−μ)3]/σ3\operatorname{Skew}(X)=E[(X-\mu)^3]/\sigma^3.
  • Curtosi (kurtosis): Kurt⁡(X)=E[(X−μ)4]/σ4\operatorname{Kurt}(X)=E[(X-\mu)^4]/\sigma^4.

Momenti teorici e campionari. Le formule precedenti riguardano la distribuzione vera, che non si conosce. Con i dati disponibili si calcolano le versioni campionarie, sostituendo il valore atteso con la media aritmetica sugli nn campioni (è lecito perché, per la Legge dei grandi numeri e metodo Monte CarloSe X₁, X₂, ... sono i.i.d. con media μ, la media campionaria X̄ₙ = (X₁ + ... + Xₙ)/n converge a μ: in probabilità (legge debole, dimostrata con Chebyshev se la varianza è finita: P(|X̄ₙ − μ| > ε) ≤ σ²/(nε²)) e quasi certamente (legge forte). Metodo Monte Carlo: ∫ g = E[g(U)] si stima con la media di g(U₁), ..., g(Uₙ) per uniformi indipendenti.Legge dei grandi numeri e metodo Monte Carlo →, la media dei campioni tende al valore atteso al crescere di nn; il simbolo di somma è in SommatorieIl simbolo di sommatoria, le sue proprietà (linearità, additività, cambio di indice) e le somme notevoli di Gauss e geometrica.Sommatorie →):

Formula (momenti campionari). Con X1,…,XnX_1,\dots,X_n i valori osservati: μ^k=1n∑i=1nXik,μ=1n∑iXi,σ2=1n∑i(Xi−μ)2,\hat\mu_k=\frac1n\sum_{i=1}^nX_i^k,\qquad \mu=\frac{1}{n}\sum_i X_i,\qquad \sigma^2=\frac{1}{n}\sum_i(X_i-\mu)^2, Skew⁡=∑i(Xi−μ)3n σ3,Kurt⁡=∑i(Xi−μ)4n σ4.\operatorname{Skew}=\frac{\sum_i(X_i-\mu)^3}{n\,\sigma^3},\qquad \operatorname{Kurt}=\frac{\sum_i(X_i-\mu)^4}{n\,\sigma^4}.

Esempio. X=[10,15,20,25,30,35,40,45,50,55]X=[10,15,20,25,30,35,40,45,50,55], n=10n=10. Media: μ=325/10=32,5\mu=325/10=32{,}5. Scarti dalla media: −22,5, −17,5, …, 22,5-22{,}5,\,-17{,}5,\,\dots,\,22{,}5.

Dettaglio sulla varianza. Il divisore è nn (varianza della popolazione). Molte librerie dividono per n−1n-1 (stima corretta della varianza di una popolazione a partire da un campione): pandas usa n−1n-1, numpy usa nn (con ddof=1 anche numpy usa n−1n-1). Per nn grande la differenza è trascurabile; le slide e queste note usano nn.

Perché esiste il divisore n−1n-1 (passaggi). Siano X1,…,XnX_1,\dots,X_n indipendenti, con media vera mm e varianza vera σ2\sigma^2 (indipendenzaA e B sono indipendenti se P(A ∩ B) = P(A) P(B), cioè se sapere che uno si è verificato non cambia la probabilità dell'altro; l'indipendenza passa ai complementari, non va confusa con l'incompatibilità, e per più eventi va richiesta su ogni sottofamiglia.Indipendenza di eventi →), e sia Xˉ=1n∑Xi\bar X=\frac1n\sum X_i la media campionaria. Gli scarti si misurano dalla media campionaria Xˉ\bar X, non da mm (che non si conosce), e Xˉ\bar X è per costruzione il punto «più vicino» ai dati, quindi la somma dei quadrati risulta troppo piccola. Lo si vede così.

  1. Si somma e si sottrae mm in ogni scarto: Xi−Xˉ=(Xi−m)−(Xˉ−m)X_i-\bar X=(X_i-m)-(\bar X-m).
  2. Si eleva al quadrato e si somma su ii: ∑i(Xi−Xˉ)2=∑i(Xi−m)2−2(Xˉ−m)∑i(Xi−m)+n(Xˉ−m)2\sum_i(X_i-\bar X)^2=\sum_i(X_i-m)^2-2(\bar X-m)\sum_i(X_i-m)+n(\bar X-m)^2. Poiché ∑i(Xi−m)=n(Xˉ−m)\sum_i(X_i-m)=n(\bar X-m), i due termini con (Xˉ−m)(\bar X-m) si riducono a −2n(Xˉ−m)2+n(Xˉ−m)2=−n(Xˉ−m)2-2n(\bar X-m)^2+n(\bar X-m)^2=-n(\bar X-m)^2. Quindi ∑i(Xi−Xˉ)2=∑i(Xi−m)2−n(Xˉ−m)2\sum_i(X_i-\bar X)^2=\sum_i(X_i-m)^2-n(\bar X-m)^2.
  3. Si passa al valore atteso (Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →, linearità): E[(Xi−m)2]=σ2E[(X_i-m)^2]=\sigma^2 per definizione di varianza (Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →) e E[(Xˉ−m)2]=Var⁡(Xˉ)=σ2/nE[(\bar X-m)^2]=\operatorname{Var}(\bar X)=\sigma^2/n perché la varianza della somma di variabili indipendenti è la somma delle varianze. Allora E[∑i(Xi−Xˉ)2]=nσ2−n⋅σ2n=(n−1)σ2E\big[\sum_i(X_i-\bar X)^2\big]=n\sigma^2-n\cdot\frac{\sigma^2}{n}=(n-1)\sigma^2.
  4. Dividendo per nn si ottiene in media n−1nσ2\frac{n-1}{n}\sigma^2, cioè una stima troppo bassa; dividendo per n−1n-1 la media è esattamente σ2\sigma^2 (stima corretta, unbiased). Con n=10n=10 il difetto è del 10%10\%, con n=1000n=1000 dello 0,1%0{,}1\%: per questo con tanti dati la differenza è trascurabile.

Che cosa dicono i quattro indicatori

Curtosi Nome Forma
K=3K=3 mesocurtica come la normale
K>3K>3 leptocurtica code più pesanti (più valori estremi), picco più appuntito
K<3K<3 platicurtica code più leggere (meno valori estremi), più piatta e larga

Per l'asimmetria il caso tipico è la distribuzione con coda destra lunga, come l'esponenziale (Distribuzioni uniforme continua ed esponenzialeU(a, b) ha densità costante 1/(b − a) su [a, b], media (a + b)/2 e varianza (b − a)²/12; Exp(λ) ha densità λe^(−λx) per x ≥ 0, FdD 1 − e^(−λx), P(X > t) = e^(−λt), media 1/λ, varianza 1/λ², ed è l'unica legge continua senza memoria (versione continua della geometrica).Distribuzioni uniforme continua ed esponenziale →), che ha Skew⁡=2\operatorname{Skew}=2. La coda lunga sposta la media verso destra più della mediana: la media 11 supera la mediana ln⁡2≈0,69\ln2\approx0{,}69 (la mediana mm risolve ∫0me−xdx=12\int_0^m e^{-x}dx=\tfrac12, cioè 1−e−m=121-e^{-m}=\tfrac12, m=ln⁡2m=\ln 2; l'esponenziale è un logaritmoLa funzione esponenziale a^x (base positiva diversa da 1) e la sua inversa, il logaritmo in base a, con grafici e proprietà.Esponenziale e logaritmo →). È il motivo per cui con dati asimmetrici o con outlier si preferisce la mediana.

Grafico interattivo: Densità esponenziale (asimmetria +2): la media 1 è a destra della mediana ln 2 ≈ 0,69, tirata dalla coda lunga

Esempio numerico completo

Con X=[10,15,…,55]X=[10,15,\dots,55]:

  1. Media: μ=32,5\mu=32{,}5.
  2. Varianza: gli scarti quadratici sono 22,52=506,2522{,}5^2=506{,}25, 17,52=306,2517{,}5^2=306{,}25, 12,52=156,2512{,}5^2=156{,}25, 7,52=56,257{,}5^2=56{,}25, 2,52=6,252{,}5^2=6{,}25 (ciascuno due volte, perché i valori sono simmetrici rispetto alla media). Somma =2 (506,25+306,25+156,25+56,25+6,25)=2062,5=2\,(506{,}25+306{,}25+156{,}25+56{,}25+6{,}25)=2062{,}5 e quindi σ2=2062,5/10=206,25\sigma^2=2062{,}5/10=206{,}25, σ≈14,36\sigma\approx14{,}36.
  3. Asimmetria: gli scarti cubici sono a due a due opposti ((−22,5)3=−11 390,625(-22{,}5)^3=-11\,390{,}625 e 22,53=11 390,62522{,}5^3=11\,390{,}625, e così via), quindi la somma è 00: Skew⁡=0\operatorname{Skew}=0, distribuzione simmetrica.
  4. Curtosi: scarti alla quarta 22,54=256 289,062522{,}5^4=256\,289{,}0625, 17,54=93 789,062517{,}5^4=93\,789{,}0625, 12,54=24 414,062512{,}5^4=24\,414{,}0625, 7,54=3164,06257{,}5^4=3164{,}0625, 2,54=39,06252{,}5^4=39{,}0625 (ciascuno due volte). La somma è 2⋅377 695,3125=755 390,6252\cdot377\,695{,}3125=755\,390{,}625, quindi Kurt⁡=755 390,62510⋅206,252=755 390,625425 390,625≈1,78≈1,8<3,\operatorname{Kurt}=\frac{755\,390{,}625}{10\cdot206{,}25^2}=\frac{755\,390{,}625}{425\,390{,}625}\approx1{,}78\approx1{,}8<3, distribuzione platicurtica.

Attenzione a un errore nelle slide. Nelle slide le potenze quarte sono scritte come 3 013 025,563\,013\,025{,}56, 938 906,25938\,906{,}25, … con somma 8 282 8258\,282\,825; i valori corretti sono quelli scritti sopra (somma 755 390,625755\,390{,}625). Il risultato finale Kurt⁡≈1,8\operatorname{Kurt}\approx1{,}8 (platicurtica) è comunque giusto: lo conferma anche scipy.stats.kurtosis(X, fisher=False), che restituisce 1,77581{,}7758. Alla classificazione («<3<3, platicurtica») non cambia nulla, ma ricalcolare le potenze quarte con precisione è il modo di non farsi ingannare.

Quartili, mediana e IQR

Definizione (quartili). Dividono i dati ordinati in quattro parti con lo stesso numero di osservazioni:

  • Q1Q_1 (25%): valore sotto cui cade il 25% dei dati;
  • Q2Q_2 (50%): la mediana, che divide i dati in due metà;
  • Q3Q_3 (75%): valore sotto cui cade il 75% dei dati;
  • scarto interquartile IQR=Q3−Q1\mathrm{IQR}=Q_3-Q_1: ampiezza dell'intervallo che contiene il 50% centrale dei dati.

I quartili sono i quantili di livello 0,250{,}25, 0,50{,}5, 0,750{,}75: il quantile di livello qq è il valore xx in cui la funzione di distribuzioneLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione → F(x)=P(X≤x)F(x)=P(X\le x) raggiunge qq. Sui dati, FF è la percentuale cumulata dei valori ≤x\le x (è la costruzione usata sotto «senza interpolazione»).

Esempio. Con n=11n=11 dati X=[5,10,…,55]X=[5,10,\dots,55]: Q1=15Q_1=15, Q2=30Q_2=30, Q3=45Q_3=45, IQR=45−15=30\mathrm{IQR}=45-15=30.

Perché la mediana. Spesso si usa la mediana al posto della media perché è robusta rispetto agli outlier: un solo valore molto grande sposta molto la media, quasi per niente la mediana.

Esempio. [1,2,3,4,100][1,2,3,4,100]: media =22=22, mediana =3=3.

Quartili con nn pari (metodo con interpolazione)

Con n=10n=10 e X=[10,15,…,55]X=[10,15,\dots,55] si può prendere la media dei due valori centrali: Q1=20+252=22,5Q_1=\frac{20+25}{2}=22{,}5, Q2=30+352=32,5Q_2=\frac{30+35}{2}=32{,}5, Q3=45+502=47,5Q_3=\frac{45+50}{2}=47{,}5, IQR=25\mathrm{IQR}=25.

Convenzione dell'esame: senza interpolazione

Per la parte teorica dell'esame vale un'altra convenzione, che dà sempre un valore presente nel dataset:

  1. si ordinano i dati;
  2. si calcola la percentuale cumulata esatta di ciascun valore (i/ni/n per l'ii-esimo);
  3. per Q1,Q2,Q3Q_1,Q_2,Q_3 si prende il primo valore la cui percentuale è almeno 25%, 50%, 75%.

Esempio con n=11n=11. Le percentuali sono 9,09%, 18,18%, 27,27%, 36,36%, 45,45%, 54,55%, 63,64%, 72,73%, 81,82%, 90,91%, 100%9{,}09\%,\ 18{,}18\%,\ 27{,}27\%,\ 36{,}36\%,\ 45{,}45\%,\ 54{,}55\%,\ 63{,}64\%,\ 72{,}73\%,\ 81{,}82\%,\ 90{,}91\%,\ 100\%. Il primo ≥25%\ge25\% è il 27,27%27{,}27\%, cioè Q1=15Q_1=15; il primo ≥50%\ge50\% è il 54,55%54{,}55\%, cioè Q2=30Q_2=30; il primo ≥75%\ge75\% è l'81,82%81{,}82\%, cioè Q3=45Q_3=45.

Esempio con n=10n=10. Le percentuali sono 10%,20%,…,100%10\%,20\%,\dots,100\%. Q1Q_1: primo ≥25%\ge25\% è 30%30\%, quindi Q1=20Q_1=20. Q3Q_3: primo ≥75%\ge75\% è 80%80\%, quindi Q3=45Q_3=45. Per Q2Q_2 la slide indica 3535 (il 60%60\%) e non 3030 (che raggiunge esattamente il 50%50\%): per nn pari l'esempio delle slide prende dunque il valore subito oltre il 50%. Il testo della regola dice «almeno 50%», quindi l'esempio non è coerente con la regola scritta; quando nn è pari e un valore cade esattamente sul 50%, conviene attenersi all'esempio delle slide (Q2=35Q_2=35) e indicare nella risposta il criterio usato. La regola scritta («primo valore con percentuale almeno…») corrisponde a np.percentile(..., method="inverted_cdf") (per n=10n=10 dà 20, 30, 4520,\,30,\,45). Il laboratorio usa invece method="higher", che sulle slide darebbe valori diversi (per n=11n=11: Q1=20Q_1=20 invece di 1515; per n=10n=10: 25, 35, 4525,\,35,\,45), anche se il commento del notebook lo presenta come quello visto a lezione: per i quartili calcolati a mano all'esame vale la procedura delle slide, non il metodo di NumPy.

La moda

Definizione (moda). Il valore che compare più spesso nei dati. È importante per le variabili categoriche, per le quali media e mediana non hanno senso.

Esempio. X=[1,2,2,3,4,7,9,10,10,10,12]X=[1,2,2,3,4,7,9,10,10,10,12]: media =70/11≈6,36=70/11\approx6{,}36, mediana =7=7, moda =10=10.

Preparare il dataset

Le quantità statistiche non servono solo a descrivere i dati: servono a sistemarli per il modello. Quattro operazioni.

1. Capire il dataset

Esempio di riferimento: il dataset Iris (Fisher, 1936): n=150n=150 fiori, p=4p=4 variabili (lunghezza e larghezza di sepali e petali), problema di classificazione a L=3L=3 classi (setosa, versicolor, virginica). Tipicamente si guardano per ciascuna variabile media, varianza, quartili e si studiano relazioni tra variabili (vedi Correlazione e visualizzazione dei datiLa correlazione di Pearson $r=\sum(X_i-\bar X)(Y_i-\bar Y)/\big(\sqrt{\sum(X_i-\bar X)^2}\sqrt{\sum(Y_i-\bar Y)^2}\big)\in[-1,1]$ misura la relazione lineare tra due variabili (covarianza divisa per le deviazioni standard); correlazione non implica causalità. Serve a capire quali variabili contano per il target e a eliminare quelle quasi duplicate (|r| molto alto). Gli indicatori di sintesi non bastano (quartetto di Anscombe, Datasaurus): vanno affiancati ai grafici: istogramma, KDE, box plot, violin plot, heatmap di correlazione, scatter plot e matrice di scatter plot.Correlazione e visualizzazione dei dati →).

2. Correggere: i dati mancanti

I dati mancanti sono comuni e molti modelli non funzionano se ci sono. Di solito non si butta via l'intera osservazione, ma si imputa il valore mancante, cioè si sostituisce con una stima:

  • media o mediana della variabile, per variabili numeriche (la mediana se ci sono outlier);
  • moda per variabili categoriche.

Esempio. Età [20,30,?,40,50][20,30,\text{?},40,50]: la media dei quattro valori noti è 3535, che sostituisce il mancante. Se la variabile ha quasi tutti i valori mancanti conviene invece eliminarla.

3. Migliorare: feature engineering e ridurre

L'ingegneria delle feature (feature engineering) è il processo di creare, selezionare e trasformare le variabili. I dati non si presentano sempre in forma tabulare: da una serie temporale si possono estrarre media, varianza, minimo e massimo su ogni finestra. In senso opposto, bisogna ridurre il dataset eliminando le variabili non informative, per efficienza e per soluzioni più semplici. Di solito non si sa a priori quali siano, e lo si decide durante o dopo la modellazione; con una eccezione ovvia: una variabile costante (varianza 00) non porta informazione e va eliminata.

4. Normalizzare: lo z-score

Le variabili hanno scale diverse e quella con valori più grandi può «dominare» le altre (nel calcolo di distanze o nel penalizzare i coefficienti). La standardizzazione (z-score) porta ogni variabile a media 00 e deviazione standard 11.

Formula (z-score). z=x−μσz=\dfrac{x-\mu}{\sigma}, con μ\mu e σ\sigma media e deviazione standard della variabile (la stessa standardizzazione delle variabili gaussiane: Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →).

Esempio (dalle slide). X=[10,12,14,16,18]X=[10,12,14,16,18]: μ=14\mu=14, σ=3,162\sigma=3{,}162 (con divisore n−1n-1, come fa pandas); gli z-score sono −1,265, −0,632, 0, 0,632, 1,265-1{,}265,\ -0{,}632,\ 0,\ 0{,}632,\ 1{,}265. Con il divisore nn si avrebbe σ=2,828\sigma=2{,}828 e valori −1,414,…,1,414-1{,}414,\dots,1{,}414: le slide usano n−1n-1.

Gli stessi numeri, passo per passo.

  1. Media: (10+12+14+16+18)/5=70/5=14(10+12+14+16+18)/5=70/5=14.
  2. Scarti x−μx-\mu: −4, −2, 0, 2, 4-4,\,-2,\,0,\,2,\,4; al quadrato 16, 4, 0, 4, 1616,\,4,\,0,\,4,\,16; somma =40=40.
  3. Varianza con n−1=4n-1=4: 40/4=1040/4=10, quindi σ=10≈3,162\sigma=\sqrt{10}\approx3{,}162 (con n=5n=5 sarebbe 40/5=840/5=8 e σ=8≈2,828\sigma=\sqrt8\approx2{,}828).
  4. Si divide ogni scarto per σ\sigma: −4/3,162=−1,265-4/3{,}162=-1{,}265; −2/3,162=−0,632-2/3{,}162=-0{,}632; 00; 0,6320{,}632; 1,2651{,}265.

Perché lo z-score ha media 0 e deviazione standard 1. Sia Z=(X−μ)/σZ=(X-\mu)/\sigma. Per la linearità del valore atteso (Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →) E[Z]=(E[X]−μ)/σ=0E[Z]=(E[X]-\mu)/\sigma=0. Per la varianza una costante sottratta non conta e una costante moltiplicativa aa esce al quadrato (Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →): Var⁡(Z)=Var⁡(X)/σ2=1\operatorname{Var}(Z)=\operatorname{Var}(X)/\sigma^2=1. Si può controllare sui numeri sopra: la somma degli z-score è −1,265−0,632+0+0,632+1,265=0-1{,}265-0{,}632+0+0{,}632+1{,}265=0 e la somma dei loro quadrati è 1,6+0,4+0+0,4+1,6=4=n−11{,}6+0{,}4+0+0{,}4+1{,}6=4=n-1, cioè varianza campionaria 11 con divisore n−1n-1. Il motivo pratico: se una variabile è in metri (valori ∼1\sim1) e un'altra in euro (valori ∼105\sim10^5), una distanza euclidea (Norma, distanza e prodotto scalare in RnIn Rⁿ la norma è |x| = √(x₁² + … + xₙ²) e la distanza tra x e y è |x − y|. Valgono la disuguaglianza triangolare |x + y| ≤ |x| + |y| e quella di Cauchy-Schwarz |x·y| ≤ |x||y|, con uguaglianza solo per vettori paralleli. Palle B(p,r] e cubi Q(p,r] si contengono a vicenda: B(p,r] ⊆ Q(p,r] ⊆ B(p,r√n]. Rette, piani, ellissi e cilindri si riconoscono dall'equazione (completando i quadrati).Norma, distanza e prodotto scalare in Rn →) è decisa quasi solo dagli euro; dopo la standardizzazione le due contano allo stesso modo.

Grafico interattivo: Una variabile con media 5 e deviazione standard 2 e la stessa variabile standardizzata: lo z-score la sposta in 0 e la restringe a larghezza 1, senza cambiarne la forma

Regola fondamentale. μ\mu e σ\sigma si calcolano sul solo training set e si usano gli stessi per standardizzare validation e test: calcolarli sul dataset completo fa «trapelare» informazione dal test al training e falsa la valutazione (Regressione lineareNell'apprendimento supervisionato si impara una funzione $F(x)$ dagli esempi $(x,y)$: regressione se $y$ è continua, classificazione se è categorica. Il modello lineare è $F_\beta(x)=\beta_0+\beta_1x_1+\dots+\beta_px_p=X\beta$ (con una colonna di uni per $\beta_0$) e i parametri si scelgono minimizzando l'errore quadratico medio $\mathrm{MSE}=\frac1n\sum_i(y_i-F_\beta(x_i))^2$, funzione convessa dei parametri. Annullando il gradiente di $J(\beta)=|y-X\beta|^2$ si ottengono le equazioni normali $X^TX\beta=X^Ty$ e la soluzione dei minimi quadrati ordinari $\beta=(X^TX)^{-1}X^Ty$. Il coefficiente di determinazione $R^2=1-SS_{res}/SS_{tot}$ misura la qualità del fit (0 = come la media, negativo = peggio della media). Un modello va valutato su un test set mai usato per addestrare: l'errore sul training è ottimistico e un polinomio di grado alto lo azzera senza generalizzare.Regressione lineare →). La normalizzazione fa risparmiare molto tempo di addestramento ed è spesso il passaggio dimenticato.

Grafico interattivo: Normale standard e distribuzione più appuntita con la stessa media e varianza: la seconda ha curtosi maggiore di 3 (code più pesanti e picco più alto)

Errori tipici

  • Calcolare media e deviazione standard sul dataset intero (training più test) prima di dividere.
  • Confondere la varianza con divisore nn e quella con divisore n−1n-1: indicare sempre quale si usa.
  • Usare la media per dati con outlier o categorici: meglio mediana e moda.
  • Imputare con la media prima della divisione train/test e usare statistiche calcolate anche sul test.
  • Scordarsi di eliminare le variabili costanti.

Versione ripasso

Definizione (matrice di progetto). XX ha nn righe (osservazioni, campioni) e pp colonne (variabili o feature). Il compito è il problema da risolvere; il modello è la rappresentazione matematica addestrata sui dati.

Esempio. 1 000 case con 3 attributi (metri quadri, stanze, anno di costruzione): n=1000n=1000, p=3p=3. Un dato non è coerente o non è utile se ridondante: prima di dare XX al modello si controlla.

Pipeline. Preprocessing (statistiche descrittive, correlazione, PCA, scaling), costruzione del modello (probabilità, generalizzazione, overfitting, compromesso bias-varianzaUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →), valutazione (MSE, MAE, accuracy, precision, recall).

Formula (momenti campionari). Con X1,…,XnX_1,\dots,X_n i valori osservati: μ=1n∑i=1nXi,σ2=1n∑i=1n(Xi−μ)2\mu=\frac1n\sum_{i=1}^nX_i,\qquad \sigma^2=\frac1n\sum_{i=1}^n(X_i-\mu)^2 Skew⁡=∑i(Xi−μ)3n σ3,Kurt⁡=∑i(Xi−μ)4n σ4\operatorname{Skew}=\frac{\sum_i(X_i-\mu)^3}{n\,\sigma^3},\qquad \operatorname{Kurt}=\frac{\sum_i(X_i-\mu)^4}{n\,\sigma^4}

Le formule campionarie sostituiscono il valore atteso con la media sugli nn campioni: è lecito perché, per la Legge dei grandi numeri e metodo Monte CarloSe X₁, X₂, ... sono i.i.d. con media μ, la media campionaria X̄ₙ = (X₁ + ... + Xₙ)/n converge a μ: in probabilità (legge debole, dimostrata con Chebyshev se la varianza è finita: P(|X̄ₙ − μ| > ε) ≤ σ²/(nε²)) e quasi certamente (legge forte). Metodo Monte Carlo: ∫ g = E[g(U)] si stima con la media di g(U₁), ..., g(Uₙ) per uniformi indipendenti.Legge dei grandi numeri e metodo Monte Carlo →, la media dei campioni tende al valore atteso al crescere di nn.

Esempio. X=[10,15,…,55]X=[10,15,\dots,55], n=10n=10: μ=32,5\mu=32{,}5; σ2=206,25\sigma^2=206{,}25, σ≈14,36\sigma\approx14{,}36 (divisore nn); Skew⁡=0\operatorname{Skew}=0, perché gli scarti cubici sono a due a due opposti; Kurt⁡=755 390,625/425 390,625≈1,78<3\operatorname{Kurt}=755\,390{,}625/425\,390{,}625\approx1{,}78<3, quindi platicurtica.

Quartili, mediana, IQR, moda

Definizione (quartili). Q1Q_1, Q2Q_2, Q3Q_3 lasciano sotto il 25%, 50%, 75% dei dati (sono i quantiliLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione → di livello 0,250{,}25, 0,50{,}5, 0,750{,}75). IQR=Q3−Q1\mathrm{IQR}=Q_3-Q_1 è l'ampiezza del 50% centrale.

Esempio. X=[5,10,…,55]X=[5,10,\dots,55], n=11n=11: Q1=15Q_1=15, Q2=30Q_2=30, Q3=45Q_3=45, IQR=30\mathrm{IQR}=30.

Con nn pari e interpolazione (media dei due valori centrali) per X=[10,15,…,55]X=[10,15,\dots,55] si ottiene Q1=22,5Q_1=22{,}5, Q2=32,5Q_2=32{,}5, Q3=47,5Q_3=47{,}5, IQR=25\mathrm{IQR}=25.

Mediana e outlier. La mediana è robusta: in [1,2,3,4,100][1,2,3,4,100] la media vale 2222, la mediana 33. Con dati asimmetrici o outlier si preferisce la mediana.

Convenzione dell'esame (senza interpolazione). Si ordinano i dati, si calcola la percentuale cumulata i/ni/n di ciascun valore e si prende il primo valore con percentuale almeno 25%, 50%, 75%. Con n=11n=11 si ottiene Q1=15Q_1=15, Q2=30Q_2=30, Q3=45Q_3=45. Con n=10n=10 la slide dà Q2=35Q_2=35 (il valore oltre il 50%), mentre la regola scritta darebbe 3030: quando un valore cade esattamente sul 50%, conviene seguire la slide e dichiarare il criterio usato.

Definizione (moda). Il valore più frequente. Serve per i dati categorici, per cui media e mediana non hanno senso.

Esempio. X=[1,2,2,3,4,7,9,10,10,10,12]X=[1,2,2,3,4,7,9,10,10,10,12]: media 70/11≈6,3670/11\approx6{,}36, mediana 77, moda 1010.

Preparare il dataset

  • Dati mancanti. Si imputano con la media o la mediana (numeriche, mediana se ci sono outlier) o con la moda (categoriche). Esempio. [20,30,?,40,50][20,30,\text{?},40,50]: il mancante diventa 3535. Se la variabile è quasi tutta mancante si elimina.
  • Variabili costanti (σ2=0\sigma^2=0): non portano informazione, si eliminano.
  • Feature engineering. Creare (da una serie temporale: media, varianza, minimo, massimo su ogni finestra), selezionare e trasformare le variabili; ridurre quelle non informative.

Formula (z-score). z=x−μσz=\dfrac{x-\mu}{\sigma}, con μ\mu e σ\sigma calcolati sul solo training set e riusati su validation e test (Regressione lineareNell'apprendimento supervisionato si impara una funzione $F(x)$ dagli esempi $(x,y)$: regressione se $y$ è continua, classificazione se è categorica. Il modello lineare è $F_\beta(x)=\beta_0+\beta_1x_1+\dots+\beta_px_p=X\beta$ (con una colonna di uni per $\beta_0$) e i parametri si scelgono minimizzando l'errore quadratico medio $\mathrm{MSE}=\frac1n\sum_i(y_i-F_\beta(x_i))^2$, funzione convessa dei parametri. Annullando il gradiente di $J(\beta)=|y-X\beta|^2$ si ottengono le equazioni normali $X^TX\beta=X^Ty$ e la soluzione dei minimi quadrati ordinari $\beta=(X^TX)^{-1}X^Ty$. Il coefficiente di determinazione $R^2=1-SS_{res}/SS_{tot}$ misura la qualità del fit (0 = come la media, negativo = peggio della media). Un modello va valutato su un test set mai usato per addestrare: l'errore sul training è ottimistico e un polinomio di grado alto lo azzera senza generalizzare.Regressione lineare →).

Esempio. [10,12,14,16,18][10,12,14,16,18]: μ=14\mu=14; scarti −4,−2,0,2,4-4,-2,0,2,4, con quadrati di somma 4040; con divisore n−1=4n-1=4, σ=10≈3,162\sigma=\sqrt{10}\approx3{,}162 e z-score −1,265, −0,632, 0, 0,632, 1,265-1{,}265,\ -0{,}632,\ 0,\ 0{,}632,\ 1{,}265. Con divisore nn si avrebbe σ≈2,828\sigma\approx2{,}828.

Lo z-score ha media 00 (linearità del Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →) e varianza 11 (Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →). Serve a evitare che una variabile con scala grande domini le distanze euclidee (Norma, distanza e prodotto scalare in RnIn Rⁿ la norma è |x| = √(x₁² + … + xₙ²) e la distanza tra x e y è |x − y|. Valgono la disuguaglianza triangolare |x + y| ≤ |x| + |y| e quella di Cauchy-Schwarz |x·y| ≤ |x||y|, con uguaglianza solo per vettori paralleli. Palle B(p,r] e cubi Q(p,r] si contengono a vicenda: B(p,r] ⊆ Q(p,r] ⊆ B(p,r√n]. Rette, piani, ellissi e cilindri si riconoscono dall'equazione (completando i quadrati).Norma, distanza e prodotto scalare in Rn →).

Errori tipici:

  • calcolare media e deviazione standard su tutto il dataset, test compreso;
  • non dichiarare quale divisore della varianza si usa (nn oppure n−1n-1);
  • usare la media con outlier o con dati categorici;
  • imputare prima di dividere train e test;
  • dimenticare di eliminare le variabili costanti.

Esercizi su questo argomento

Teoria collegata