Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
REGRESSIONE
L'errore che calcoliamo nella regressione è la distanza (sull'asse y) tra i valori reali (linea dritta) di uno specifico sample e la predizione. In questo modo calcoliamo i cosiddetti residuals.
Per la valutazione di un modello di regressione usiamo:
- MAE: sommiamo i residuals e li dividiamo per il numero di samples. I residuals hanno la stessa unità di misura delle predizioni.
- MSE: Possiamo calcolarlo come il calcolo dei residuals per ogni sample, elevarli al quadrato, sommarli tra loro e dividere il risultato per il numero di samples. È una metrica migliore di prima ma come possiamo valutare questa metrica (problema: valori difficili da interpretare). Per questo ci siamo mossi su un'altra metrica:
- RMSE: Qui applichiamo la radice al MSE. In questo modo abbiamo un valore facilmente interpretabile dalle persone.
Il comportamento del MSE e del RMSE è lo stesso, l'unica differenza è la radice, ma utilizziamo il RMSE.
Il tuo compito è formattare il testo fornito utilizzando tag html.
ATTENZIONE: non modificare il testo in altro modo, NON aggiungere commenti, NON utilizzare tag h1;
inquanto ci restituisce valori facilmente interpretabili dalle persone.
CLASSIFICAZIONE
Classification Error
L'errore può essere visto in maniera simile alla regressione. Nel grafico come vediamo abbiamo due diverse popolazioni (stelle rosse e croci blu) e abbiamo anche due diverse curve decisionali (rossa e nera) che rappresentano due diversi classification models:
- Quello nero può essere un classificatore quadratico o qualcosa del genere
- Quello rosso è un classificatore più segmentato e può essere altro (Neural Network, class. tree, ecc).
Se compariamo i due modelli dobbiamo contare il numero di missclassified samples:
- Considerando quello nero vediamo che abbiamo un certo numero di missclassified samples;
- Considerando il classificatore rosso, possiamo fare lo stesso e vediamo come il numero di missclassified samples è minore rispetto al classificatore nero
Potremmo dire che il classificatore rosso sta performando meglio, ma cosa vuol dire?
Dovrei riassumere imissclassified elements? Dovrei considerare il numero di samples classificati correttamente? E per quali classi? Tutte queste domande guidano la costruzione di una matrice, chiamata confusion matrix. Questa matrice rappresenta quanto bene o male il nostro classificatore sta facendo. Perché per un classificatore binario possiamo dire di avere le classi attuali dei nostri samples e le classi predette. In particolare, per ogni sample, possiamo dire che è: - Classificato correttamente (T) - Classificato non correttamente (F) E inoltre per ogni sample possiamo dire se appartiene alla classe positiva o a quella negativa. Questo ci porta a 4 possibili situazioni per ogni singolo sample: - Posso aver predetto il mio sample come 1, come positivo, ma esso può essere realmente (actual class) un true positive (TP) o un false positive (FP) - Posso aver predetto il mio sample come 0, come negativo, ma esso può essere realmente un true negative (TN) o un false negative (FN)(actualclass) un true negative (TN) o un false negative (FN)
Sulla base di questi 4 scenari, possiamo calcolare la posizione in questa matrice per ogni sample nel nostro dataset (validation o test dataset) e quindi possiamo usare queste 4 quantità (TP, TN, FP, FN), per calcolare un gruppo di diverse matrici:
Queste matrici rappresentano diversi aspetti di un problema di classificazione. Vediamole nel dettaglio:
❖ Accuracy (accuratezza): la somma dei true positive e true negatives, quindi i samples classificati correttamente diviso tutti i sample.
❖ Precision (precisione): è il numero di TP diviso la somma dei samples predetti come positivi (TP+FP)
❖ Recall or Sensitivity or True Positive Rate: è il numero di TP diviso la somma dei TP e FN (guardando all'immagine della confusion matrix, il denominatore è la prima colonna, ovvero quella della actual class positiva)
❖ Specificity or True Negative Rate: è il numero di TN diviso la somma dei FP e TN
(guardando all'immagine della confusion matrix, il denominatore è la seconda colonna, ovvero quella della actual class negativa)
❖ Error rate = 1 - accuracy: è pari a 1 - l'accuratezza quindi la somma dei FP e FN diviso tutti i samples
❖ F - measure: chiamata anche media armonica
❖ False Positive Rate = 1 - specificity
Quindi nella mia task di classificazione quale matrice dovrei considerare? Non c'è una risposta, dipende dalla task in base a cosa è più importante.
Esempio: Multiclass Classification
Finora abbiamo analizzato una situazione classica per la classificazione binaria. Ma abbiamo visto che possiamo anche usare Multiclass Classification; come dovrei fare quando ho una multiclass classification per la confusion matrix?
Ovviamente il numero di classi predette è diverso; nell'esempio ho tre possibili classi che posso predire che sono Mango, Orange o Apple e ovviamente le True classi sono le stesse.
se predico Apple ed è apple, allora sono sicuro che è apple e questo può essere un TP per apple. Se predico apple ma è orange, prenderò una nota nella zona interessata (1 riga, 2 colonna). E lo stesso se predico apple ma è mango. Possiamo fare per la predizione di orange e per la predizione di mango. Ma ora come posso calcolare tutte queste evaluation matrix (accuracy, precision, …), sulla base di queste nuove confusion matrix? La risposta è molto semplice: Immaginiamo di avere questo esempio che è praticamente identico al precedente (3 classi predette e 3 actual classi). Se predico apple ed è apple la cella (11) è la mia TP, per cosa? Per apple. Questo è molto importante perché quando abbiamo una multiclass classification, calcoliamo queste evaluation matrix (accuracy, precision, …) rispetto ad una singola classe. Quindi supponiamo di voler calcolare l'accuracy per la classe apple: quando predicoROC (Receiver Operating Characteristic) Space
Per capire la ROC curve, consideriamo il comportamento di 4 diversi classificatori in un no spazio composto da TP rate e FP rate. Quindi possiamo denotare ognuno di questi classificatori dalle lettere A, B, C, D.
Per ogni classificatore, possiamo calcolare la confusion matrix, quindi i sample classificati correttamente (TP), e ovviamente anche i TN, FP, FN. Quindi otteniamo una tabella come quella a sinistra dell'immagine.
Sulla base di questa tabella possiamo calcolare TPR (True Positive Rate) e FPR (False Positive Rate). Prendiamo questi due valori per ogni classificatore e li
possiamo rappresentare in questo ROC space (parte destra dell'immagine), uno spazio dove l'asse Y rappresenta TPR e l'asse X è FPR. Come possiamo immaginare ciò che accade è che se il FPR = 0 e TPR = 1, siamo nell'angolo in alto a sinistra e siamo nella situazione in cui il nostro classificatore è perfetto, in quanto non ci sono missclassified samples. Ma la realtà è molto diversa, infatti se guardiamo all'esempio possiamo vedere come A e C' sono più o meno vicini al perfect classification point, B è sulla diagonale e C è vicino all'angolo in basso a destra. SINISTRA Come possiamo leggere questa rappresentazione? Se l'angolo in alto a destra è il perfect classification (TPR = 1 e FPR = 0), avremo che l'angolo in basso a destra (FPR = 1 e TPR = 0) è il worst classification point. Ma cosa accade per il classificatore B? È esattamente sulla diagonale, quindi la distanza.tra i due angolo è lastessa. Ciò vuol dire che classifica correttamente i nostri samples per la meta del tempo e per l’altra metà liclassifica erroneamente. Quindi in questo caso (B classifier) avere un classificatore o una moneta è praticamente la stessa cosa. Possiamo lanciare una moneta e vedere che accade. Ma in ML vogliamo creare classificatori che sono nella parte in alto a sinistra di questa diagonale e in particolare se abbiamo un gruppo di diverse varianti di classificatori, possiamo descrivere una curva; vogliamo che questa curva sia il più vicino possibile all’angolo in alto a sinistra. Esempio: Come possiamo calcolare la curva per questo classificatore. Supponiamo di avere questo dataset che contiene l’anno, e per ogni anno prendiamo nota se ha piovuto tanto o meno. Quindi decidiamo di osservare un evento in questo caso che riguarda il fatto se ha piovuto o meno (1 ha piovuto, 0 no). Quindi sulla base di ciò abbiamo creatoIl nostro classificatore è questo classificatore cosa andrà a fare è una previsione (forecast) se pioverà o meno e avremo una certa probabilità associata a ogni sample. Quindi ordiniamo ogni sample sulla base di questa probabilità in ordine decrescente.
A questo punto possiamo chiederci: per un dato classificatore a che soglia dovrei impostare il classificatore?
La soglia per il nostro classificatore deve essere fissa? O posso fare di meglio?
Finora ciò che possiamo fare è definire 3 diverse soglie: 0.1, 0.5 e 0.8 (legate alla probabilità). Per ogni soglia c'è un insieme di samples che sono correttamente classificati dal classificatore (correct positive e correct negative set) che possiamo vedere nella tabella:
Quindi il problema non è qui. Il problema sta nel diverso comportamento dei diversi classificatori (perché è lo stesso classificatore ma con diverse soglie). Quindi la differenza tra questi
classificatori è nel centro dellatabella. Possiamo prendere il primo classificatore e classificare ogni sample. Per alcuni di essi otterremo 0, per altri 1. Nel caso in cui la soglia è 0.1, in questo esempio per i sample la cui probabilità è maggiore o uguale di 0.136 metteremo 1 altrimenti 0.
Possiamo fare lo stesso per 0.5, dove i valori >= 0.576 = 1, gli altri = 0;
Possiamo fare lo stesso per 0.8, dove i valori >= 0.816 = 1, gli altri = 0.
Quindi possiamo decidere che queste 3 soglie sono diversi classificatori, in quanto si comportano in maniera diversa tra loro.
Calcoliamo ora diversi classificatori, tracciando la curva:
Possiamo quindi calcolare il classificatore per 0, il classificatore per 0.1, il classificatore per 0.3, il classificatore per 0.6, per 0.8, per 0.9 e 1. Sulla base dei valori che otteniamo possiamo calcolare una curva che parte dall'angolo in basso a sinistra e finisce nell'angolo in alto a destra.
Quindi sulla base di
ciò possiamo calcolare questa cura e qu