Classificazione Flashcards
Cos’è la classificazione? e quali tipi di classificatori esistono?
La classificazione è una tecnica di apprendimento automatico che consiste nell’assegnare oggetti o istanze a una o più categorie predefinite sulla base delle loro caratteristiche o attributi. È uno dei compiti più comuni nel campo dell’apprendimento automatico e viene utilizzato in una vasta gamma di applicazioni, come il riconoscimento del testo, la diagnosi medica, il rilevamento delle frodi e molti altri.
I classificatori sono algoritmi o modelli che apprendono dai dati di addestramento per effettuare la classificazione. Esistono diversi tipi di classificatori, tra cui:
Classificatori lineari: Questi classificatori assumono che i dati possano essere separati da un iperpiano o una linea di decisione. Esempi comuni di classificatori lineari includono la regressione logistica e il support vector machine (SVM). Classificatori basati su alberi di decisione: Questi classificatori utilizzano una struttura ad albero per prendere decisioni successive sulla base delle caratteristiche dei dati. Gli esempi includono l'albero decisionale (decision tree) e il random forest. Classificatori bayesiani: Questi classificatori si basano sul teorema di Bayes per stimare le probabilità condizionate delle classi date le caratteristiche dei dati. Esempi comuni sono il classificatore bayesiano ingenuo (naive Bayes) e il classificatore Bayes ingenuo Gaussian (Gaussian naive Bayes). Classificatori basati su k-Nearest Neighbors (k-NN): Questi classificatori assegnano un'istanza ai vicini più vicini nel set di addestramento. La classe assegnata dipende dalla maggioranza dei vicini più vicini. Il k-NN è un esempio di classificatore basato sull'istanza. Classificatori basati su reti neurali: Questi classificatori utilizzano reti neurali artificiali per apprendere dai dati e prendere decisioni di classificazione. Esempi includono le reti neurali feedforward e le reti neurali convoluzionali (CNN). Classificatori basati su regole: Questi classificatori utilizzano un insieme di regole if-then per effettuare la classificazione. Gli esempi includono i classificatori basati su regole associative e i classificatori basati su regole decisionali.
Questi sono solo alcuni esempi di classificatori, e ce ne sono molti altri. La scelta del classificatore dipende dal tipo di dati, dalle caratteristiche del problema e dalle prestazioni desiderate. È importante selezionare il classificatore più adatto per una specifica applicazione e valutare le sue prestazioni utilizzando metriche come l’accuratezza, la precisione, il richiamo e la F1-score.
Confusion Matrices
All’interno della matrice di confusione abbiamo quattro categorie:
* True Positives (TP): i casi per cui il classificatore correttamente ha predetto positivamente un
esempio;
* True Negatives (TN): i casi per cui il classificatore correttamente ha predetto negativamente un
esempio;
* False Positives (FP): i casi per cui il classificatore in maniera non corretta ha predetto positivamente
un esempio negativo;
* False Negatives (FN): i casi per cui il classificatore in maniera non corretta ha predetto
negativamente un esempio positivo;
- Accuracy: È un modo per riassumere il risultato nella matrice di confusione;
- Precision: misura quanti campioni previsti come positivi sono in realtà positivi;
- Recall: misura quanti sono i campioni positivi indovinati dalle previsioni positive.
Sfortunatamente, l’aumento della precision riduce la recall, e viceversa (precision/recall tradeoff) - F1 Score: È un modo per riassumere tutti i risultati, essendo una media armonica di precision e
recall
Cos’è la ROC Curve (Receiver Operating Characteristic)?
La curva ROC (Receiver Operating Characteristic) è uno strumento grafico utilizzato per valutare le prestazioni di un modello di classificazione binaria. Questa curva rappresenta la relazione tra la sensibilità (o tasso vero positivo) e il tasso di falsi positivi di un classificatore in diverse soglie di decisione.
In termini più semplici, la curva ROC aiuta a comprendere come un modello di classificazione si comporta al variare della soglia di probabilità utilizzata per classificare le istanze. Una curva ROC è tracciata tracciando il tasso di falsi positivi sull’asse delle ascisse e il tasso vero positivo sull’asse delle ordinate. Un classificatore ideale avrebbe una curva ROC che sale rapidamente verso l’angolo in alto a sinistra del grafico, indicando un’alta sensibilità e un basso tasso di falsi positivi.
L’area sotto la curva ROC (AUC-ROC) è una misura comune dell’efficacia di un modello di classificazione. Un valore di AUC-ROC vicino a 1 indica che il modello ha prestazioni eccellenti, mentre un valore vicino a 0,5 suggerisce che il modello è equivalente a una scelta casuale tra le classi.
immagine
Un buon classificatore rimane il più lontano possibile da quella linea tratteggiata.
Solitamente si preferisce la curva precision/recall alla ROC quando:
* La classe positiva è rara
* Siamo più interessati ai falsi positivi che ai falsi negativi
Cos’è la Multiclass Classification?
è un classificatore che riesce a distinguere tra più di due classi.
Per ottenere questo, esistono due strategie:
* One Versus All (OvA): si utilizza un sistema nel quale vengono allenati N classificatori diversi,
ognuno per classe di output, e quindi per ogni elemento da classificare si effettua la predict in ogni
classificatore, scegliendo quello che ha dato il punteggio maggiore.
* One Versus One (OvO): si utilizza un sistema di classificatori binari, ognuno per ogni coppia di classe di output. Quindi avremo bisogno di N*(N-1)/2 classificatori.
Il vantaggio principale è che ogni classificatore ha bisogno solo di essere allenato sulla parte del
training set che contiene le classi che deve distinguere.
Per molti algoritmi di classificazione binaria OvA viene preferito, mentre OvO viene preferito quando c’è poca scalabilità e quindi è meglio suddividere il lavoro ed i dati tra i vari classificatori.
Multilabel Classification
Utile quando è necessario restituire in output più classi per ogni istanza.
Un esempio può essere quello in cui abbiamo necessità di classificare la presenza all’interno di una foto di più soggetti, e quindi in output avremo un array di booleani che indica la presenza o meno di una classe.
Per valutare l’accuratezza di un sistema del genere, un approccio può essere utilizzare l’F1 score per ogni label e fare la media dei risultati.
Multioutput – Multiclass Classification
È una semplice generalizzazione della multilabel dove ogni label può essere una multiclass
Cos’è la cross validation?
la cross validation è un metodo statistico che permette di valutare la
generalizzazione del nostro modello
“The data is split repeatedly, and multiple models are trained”
La versione più comunemente utilizzata è la k-fold cross validation, nella quale i dati vengono prima
partizionati in parti di uguale dimensione, chiamate folds, e ad ogni iterazione viene scelta una di queste parti come test set e le altre fungono da training set. Quindi, quando usiamo la cross validation ogni esempio viene utilizzato come test set esattamente una volta.
Solitamente, senza l’uso di questa tecnica, se siamo fortunati tutti gli esempi difficili da classificare
finiranno nel training set e quindi la valutazione del nostro modello sarà buona. Contrariamente, se tutti gli esempi difficili finissero nel test set il nostro modello avrebbe un risultato finale non adeguato.
Inoltre, utilizzando la cross-validation, utiliziamo dati a disposizione in maniere efficiente, poiché ad ogni split utilizziamo come dati di training alcuni di quelli che non avevamo precedentemente usato.
D’altra parte, però, lo svantaggio principale è dato dall’incremento del costo di computazione del nostro algoritmo.
Tecnica sperimentale per inferire valori ottimali per parametri di modelli predittivi.
Prevede le seguenti fasi:
1. si sceglie un numero v in modo casuale e, per ogni valore potenziale di k, si classifica, a turno, uno
dei v insiemi usando gli altri v-1 come training set
2. per ognuno di tali v esperimenti si calcola l’errore quadratico metrico, aggregando tali valori
3. si sceglie il valore di k che minimizza l’errore totale