Caso di studio su Iris dataset
by Federico Magliani
Ricapitolando
Ho introdotto nei precedenti post le nozioni necessarie per valutare un primo caso di studio. Nello specifico analizzerò il problema di classificazione dei fiori fra Iris Setosa, Virginica e Versicolor. Come già accennato, il dataset è composto da 150 istanze. Per ognuna di esse vengono fornite due features utili per la classificazione: la lunghezza e la larghezza del sepalo.
Suddivisione del dataset
Ho suddiviso il dataset in train e test: l’80% delle istanze le ho inserite nel training set e il rimanente 20% le ho inserite nel test set. Ho deciso di utilizzare, per trattare il problema di classificazione, l’algoritmo presentato nel post precedente ovvero SVM.
Risultati
L’accuratezza di classificazione ottenuta è stata pari a 83.33%. Questa metrica misura la percentuale di corrette classificazioni svolte dall’algoritmo utilizzato. Nel caso in esame significa che su 30 immagini presenti nel test set 25 sono classificate correttamente, mentre 5 sono errate. Per incrementare questo valore possono essere necessari:
- maggiori elementi nel training set;
- l’utilizzo di un set diverso di features;
- l’adozione di una strategia più efficace per la risoluzione del problema.
La matrice di confusione mostra in forma tabellare la suddivisione delle classificazioni per classe.
Aiuta quindi il data scientist a capire in quali classi l’algoritmo commette errori di classificazione.
La matrice di confusione risultante è stata la seguente:
Da questa tabella si evince che per la classe Iris Setosa il metodo usato non commette nessun errore di classificazione. Per quanto riguarda la classe Iris Virginica vengono commessi 4 errori perché 4 istanze della classe Iris Virginica vengono classificate come Iris Versicolor. Infine, per l’ultima classe viene commesso un solo errore di classificazione. Da ciò si può quindi evincere che la classe che presenta maggiori difficoltà ad essere correttamente individuata è Iris Virginica.
Un’interessante analisi è quella che si può fare su come le istanze del dataset siano suddivise in training e test set. La regola aurea è che il numero di istanze di ogni classe dovrebbe essere lo stesso. Serve per evitare problemi in fase di addestramento che si ripercuotono poi in fase di classificazione. Se il metodo di classificazione vede più esempi in fase di addestramento, ci saranno poi maggiori possibilità che classifichi gli elementi del test con l’etichetta della classe più popolosa del training set.
In questo caso le istanze sono state suddivise casualmente in questa maniera:
Dalla tabella si evince che relativamente alla classe con meno istanze in fase di training si commettono poi più errori in fase di test.
Come migliorare le performance?
Avevo utilizzato solo le prime 2 features a disposizione, ma conviene utilizzare anche le informazioni relative a lunghezza e larghezza del petalo del fiore. Ritorna quindi il discorso, fatto qualche post fa, sulla scelta delle features da utilizzare. In questo caso basta utilizzare tutte le features a disposizione per migliorare il risultato finale di classificazione, ma non sempre sarà così facile. Un buon data scientist sa valutare quali features utilizzare!
Usando tutte e 4 le features ottengo risultati nettamente migliori: accuratezza di classificazione pari a 93.33%.
Solo due errori nella classificazione dell’Iris Virginica.
Federico Magliani | Sono appassionato di Intelligenza Artificiale e nel 2020 ho ricevuto il Ph.D. in Visione Artificiale presso l'Università degli Studi di Parma.
Se vuoi ricevere maggiori informazioni sull'articolo o sui progetti che sto svolgendo visita il mio sito web. Privacy Policy |