Salta al contenuto
Note per Studenti Esercizio - Test di esempio della parte teorica (simulazione d'esame)

Esercizio - Test di esempio della parte teorica (simulazione d'esame)

Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.

In questa pagina 12

Testo. Test a risposta multipla/breve di undici domande presentato a lezione come esempio della parte teorica dell'esame (corso Machine Learning, Ing. dell'Automazione UniPD). Si risponde a ogni domanda motivando la scelta, con rimandi alla teoria.

Domanda 1: mediana

Qual è la mediana di [1,3,5,5,5,7,9][1,3,5,5,5,7,9]?

I dati sono già ordinati e sono n=7n=7 (dispari): la mediana è il valore in posizione n+12=4\frac{n+1}{2}=4, cioè il quarto, che è 55. Risposta: 5. (Con nn pari si farebbe la media dei due centrali; vedi Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →.)

Domanda 2: preprocessing robusto

Quali operazioni rendono robusto il preprocessing? Un preprocessing robusto comprende: normalizzazione/standardizzazione delle feature numeriche (le scale diverse falsano distanze e penalizzazioni, vedi Classificazione e k-nearest neighborsNella classificazione l'uscita $y$ è una categoria (con $C$ classi; $C=2$ è il caso binario). Il classificatore più semplice è il k-nearest neighbors: una nuova osservazione prende la classe più frequente (voto di maggioranza) tra i suoi $k$ vicini più prossimi nel training, con distanza euclidea $\sqrt{\sum(A_i-B_i)^2}$ o di Manhattan $\sum|A_i-B_i|$ (per la regressione si fa la media dei vicini). $k$ è un iperparametro: $k$ piccolo dà bordi frastagliati e overfitting, $k$ grande underfitting. È un metodo basato su istanze e «pigro» (nessun addestramento, costo alla predizione), sensibile a scala e feature irrilevanti e alla maledizione della dimensionalità; gli ingressi categorici si codificano con one-hot. Approfondimento: non nel programma di Telecomunicazioni.Classificazione e k-nearest neighbors → e 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 →); gestione dei valori mancanti (imputazione con media, mediana o moda, o eliminazione); codifica delle variabili categoriche (one-hot); gestione degli outlier (con la mediana e l'IQR invece di media e deviazione standard, o con tecniche di anomaly detection, vedi Anomaly detectionUn'anomalia (outlier) è un'osservazione che si discosta tanto dalle altre da far pensare che sia generata da un meccanismo diverso. Rilevarle serve come pulizia dei dati (solo se sono errori o rumore, non per migliorare artificialmente le metriche), come obiettivo finale (frodi, guasti, cybersicurezza) e per il monitoraggio di un modello in produzione. Metodi semplici: box plot (oltre $1{,}5,\mathrm{IQR}$), carte di controllo univariate ($\mu\pm3\sigma$) e la statistica multivariata di Hotelling $T^2=(x-\bar x)^TS^{-1}(x-\bar x)$ con soglia $\chi^2_{p,1-\alpha}$, valida per dati gaussiani e unimodali. Metodi non supervisionati multivariati danno un anomaly score: l'isolation forest isola ogni punto con split casuali (le anomalie hanno cammini corti) e calcola $s(x,n)=2^{-E(h(x))/c(n)}$, con soglia scelta dalla contaminazione. Senza etichette si valuta con esperti, eventi noti o anomalie sintetiche. Approfondimento: non nel programma di Telecomunicazioni.Anomaly detection →). Tutte le statistiche (media, deviazione standard) si calcolano sul solo training.

Domanda 3: ordine delle operazioni

Ordinare le operazioni: (1) pulizia dei dati, (2) divisione in training e test, (3) feature engineering, (4) analisi esplorativa, (5) riduzione della dimensionalità. La risposta del test è 4 → 1 → 3 → 5 → 2: analisi esplorativa, pulizia, feature engineering, riduzione della dimensionalità e, per ultima, la divisione in training e test.

Commento. L'ordine è quello delle slide, ma va usato con cautela: tutto ciò che apprende parametri dai dati (media e deviazione standard per la standardizzazione, componenti principali della PCA, imputazione con la media) deve essere adattato sul solo training e poi applicato al test; altrimenti il test influenza il modello (fuga di informazione, vedi Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning → e Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →). Le operazioni senza stima (correggere errori di battitura, ricodificare, calcolare un rapporto tra due colonne) possono precedere la divisione senza problemi. Nelle soluzioni degli esercizi di questa materia, per le trasformazioni con stima, la divisione viene perciò prima (vedi Esercizio - Analisi esplorativa e preprocessing di un dataset sbilanciato (Adult)).

Domanda 4: matrice di correlazione dell'Iris

Data la matrice di correlazione del dataset Iris, su quale fase successiva ha impatto? Sulla selezione delle feature. Nella matrice la lunghezza del sepalo è molto correlata con la lunghezza del petalo (0,870{,}87) e con la larghezza del petalo (0,820{,}82), e la lunghezza del petalo con la sua larghezza (0,960{,}96). Feature con correlazione così alta portano quasi la stessa informazione: se ne può tenere una per gruppo (meno variabili, meno rischio di overfitting, coefficienti più stabili nei modelli lineari, dove la collinearità rende XTXX^TX quasi singolare). La larghezza del sepalo, poco correlata con le altre (−0,12-0{,}12, −0,43-0{,}43, −0,37-0{,}37), aggiunge informazione diversa. 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 → e Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione →.

Domanda 5: a cosa serve la PCA

La PCA serve a: ridurre la dimensionalità, decorrelare le feature (le componenti principali sono incorrelate) e capire la struttura dei dati (direzioni di massima varianza). Non serve a migliorare per forza l'accuratezza né a selezionare feature originali. Vedi Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →.

Domanda 6: pseudocodice della PCA

Completare lo pseudocodice con C=1nXTXC=\frac1nX^TX. Dati X∈Rn×dX\in\mathbb R^{n\times d}:

  1. centrare i dati: X←X−xˉX\leftarrow X-\bar x (e, se le scale sono diverse, standardizzare); la formula C=1nXTXC=\frac1nX^TX è la matrice di covarianza solo se le colonne hanno media zero;
  2. calcolare C=1nXTXC=\frac1nX^TX (d×dd\times d);
  3. calcolare autovalori e autovettori di CC (vedi Autovalori e autovettoriUn autovettore è un vettore non nullo che una funzione lineare manda in un suo multiplo; si trovano gli autovalori come radici del polinomio caratteristico det(A − λI) e gli autovettori come nucleo di A − λI. Matrici simili hanno gli stessi autovalori.Autovalori e autovettori →), ordinare per autovalore decrescente;
  4. tenere i primi kk autovettori in W∈Rd×kW\in\mathbb R^{d\times k};
  5. proiettare: Z=XWZ=XW (n×kn\times k).

La frazione di varianza spiegata è ∑i≤kλi∑iλi\frac{\sum_{i\le k}\lambda_i}{\sum_i\lambda_i}.

Domanda 7: iperparametri del kNN

Quali sono gli iperparametri del kNN? La misura di distanza (euclidea, Manhattan, ...) e il numero di vicini kk. Il peso dato ai vicini è una variante. Vedi Classificazione e k-nearest neighborsNella classificazione l'uscita $y$ è una categoria (con $C$ classi; $C=2$ è il caso binario). Il classificatore più semplice è il k-nearest neighbors: una nuova osservazione prende la classe più frequente (voto di maggioranza) tra i suoi $k$ vicini più prossimi nel training, con distanza euclidea $\sqrt{\sum(A_i-B_i)^2}$ o di Manhattan $\sum|A_i-B_i|$ (per la regressione si fa la media dei vicini). $k$ è un iperparametro: $k$ piccolo dà bordi frastagliati e overfitting, $k$ grande underfitting. È un metodo basato su istanze e «pigro» (nessun addestramento, costo alla predizione), sensibile a scala e feature irrilevanti e alla maledizione della dimensionalità; gli ingressi categorici si codificano con one-hot. Approfondimento: non nel programma di Telecomunicazioni.Classificazione e k-nearest neighbors →. Non sono iperparametri i dati di training (il kNN non ha parametri da stimare).

Domanda 8: grafico dei coefficienti

In un grafico dei coefficienti in funzione di λ\lambda molti coefficienti vanno esattamente a 00 al crescere di λ\lambda: di che modello si tratta? LASSO (o Elastic Net, che mantiene la proprietà di azzerare i coefficienti): la penalità ℓ1\ell_1 ha un punto angoloso in zero e produce soluzioni sparse. La ridge riduce i coefficienti verso zero ma non li annulla esattamente. Vedi LASSO e discesa del gradienteIl LASSO è la regressione regolarizzata con penalità $L_1$: minimizza $\sum_i(y_i-x_i^T\beta)^2+\lambda\sum_{j\ge1}|\beta_j|$. A differenza della ridge, porta alcuni coefficienti esattamente a zero (soluzione sparsa, selezione delle feature): geometricamente le curve di livello dell'errore toccano il vincolo $\sum|\beta_j|\le s$ (un rombo) in uno spigolo. Non ha formula chiusa, quindi si minimizza con la discesa del gradiente $W\leftarrow W-\eta,\nabla J(W)$, usando il subgradiente $\operatorname{sign}(\beta_j)$ per il valore assoluto (nel punto 0 qualunque valore in $[-1,1]$). Il passo $\eta$ è critico: per l'errore quadratico converge se $\eta<1/\mu_{\max}(X^TX)$; si può usare $\eta_t=\eta_0/(1+\gamma t)$. L'Elastic Net combina le penalità $L_1$ e $L_2$ con $\lambda_1=\alpha\lambda$, $\lambda_2=(1-\alpha)\lambda$.LASSO e discesa del gradiente →.

Domanda 9: ridge

Quali affermazioni sulla ridge regression sono vere? Vere: gestisce la multicollinearità (aggiungere λI\lambda I rende XTX+λIX^TX+\lambda I invertibile e ben condizionata); stabilizza le stime OLS riducendo la varianza; ha una soluzione in forma chiusa, β^=(XTX+λI)−1XTy\hat\beta=(X^TX+\lambda I)^{-1}X^Ty. Non azzera i coefficienti (quello è il LASSO). 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 →.

Domanda 10: cross-validation annidata

Segnare le affermazioni vere. Le cinque affermazioni corrette del test sono:

  1. Alla fine della procedura tutto il dato è training e serve a trovare i parametri del modello finale (è l'«original set»: «quale sarà il modello finale?»).
  2. Nel ciclo interno si fanno valutazioni per capire i migliori iperparametri («qual è il miglior iperparametro per questo approccio?»).
  3. Nel ciclo esterno si valutano le prestazioni di diversi modelli e di diverse scelte di feature engineering («quali saranno le performance?»).
  4. Nel ciclo esterno si può usare sia la KK-fold cross-validation sia la Monte Carlo CV.
  5. Nel ciclo esterno il dato è diviso in training e test, in quello interno in training e validazione (il training esterno viene a sua volta diviso).

Il ciclo interno vede solo il training del ciclo esterno, quindi il test esterno non partecipa mai alla scelta degli iperparametri: la stima delle prestazioni non è ottimistica. Costo: Kest⋅Kint⋅∣Λ∣K_{\text{est}}\cdot K_{\text{int}}\cdot|\Lambda| addestramenti (Λ\Lambda insieme dei valori provati). 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 → e Esercizio - Cross-validation annidata per il LASSO sul dataset prostate.

Domanda 11: dati sbilanciati

Quali procedure aiutano con dati sbilanciati? Manipolazione del dataset (aggiungere e/o togliere osservazioni) e cross-validation stratificata (stessa proporzione di classi in ogni fold). Il problema: un modello che predice sempre la classe maggioritaria (90%) ha accuracy 90%90\% ma non riconosce la minoritaria. Le due tecniche:

  • undersampling: si scartano a caso osservazioni della classe maggioritaria. Pro: semplice, veloce; contro: si perde informazione e si rischia l'underfitting;
  • oversampling: si duplicano osservazioni della classe minoritaria. Pro: nessuna perdita di dati; contro: rischio di overfitting.

Il corso sconsiglia SMOTE (dati sintetici): pur diffuso, non ci sono evidenze solide della sua efficacia. Si valuta con precision, recall, F1F_1, ROC-AUC e non con la sola accuracy. Vedi Metriche di classificazioneIn classificazione binaria ogni previsione è vero positivo (TP), vero negativo (TN), falso positivo (FP, errore di tipo I) o falso negativo (FN, errore di tipo II). Da queste quattro quantità: accuracy $=\frac{TP+TN}{TP+TN+FP+FN}$, specificità $=\frac{TN}{TN+FP}$, precision $=\frac{TP}{TP+FP}$, recall $=\frac{TP}{TP+FN}$, e la loro media armonica $F_1=\frac{2PR}{P+R}$. Con dati sbilanciati l'accuracy inganna (un modello che predice sempre la classe maggioritaria ha 99%): si usano precision, recall, F1, ROC-AUC, la cross-validation stratificata e il riequilibrio con undersampling o oversampling (non SMOTE). Cambiando la soglia sulla probabilità si ottiene la curva ROC (TPR contro FPR) e l'area AUC. Approfondimento: non nel programma di Telecomunicazioni.Metriche di classificazione →.

Verifica numerica

python
import numpy as np
print(np.median([1,3,5,5,5,7,9]))        # 5.0
from sklearn.datasets import load_iris
print(np.corrcoef(load_iris().data.T).round(2))   # petal length-width 0.96, sepal length-petal length 0.87

Lezioni in cui compare

Teoria collegata