Dovrei davvero mangiare quel fungo?

Devo mangiare quel fungo?

Classificazione di funghi edibili e velenosi con alberi decisionali graduati di CatBoost

La maggior parte dei dataset educativi e reali contiene caratteristiche categoriche. Oggi parleremo degli alberi decisionali graduati di CatBoost, una libreria che fornisce supporto nativo per i dati categorici. Utilizzeremo un dataset di funghi che sono o edibili o velenosi. I funghi sono descritti da caratteristiche categoriche come il colore, l’odore e la forma, e la domanda a cui vogliamo rispondere è:

È sicuro mangiare questo fungo – basandoci sulle sue caratteristiche categoriche?

Come puoi vedere, il rischio è alto. Vogliamo assicurarci di ottenere il modello di apprendimento automatico corretto in modo che la nostra frittata di funghi non finisca in un disastro. Come bonus, alla fine forniremo una classifica dell’importanza delle caratteristiche che ti dirà quale caratteristica categorica è il miglior predittore della sicurezza dei funghi.

Foto di Andrew Ridley su Unsplash

Presentazione del dataset dei funghi

Il dataset dei funghi è disponibile qui: https://archive.ics.uci.edu/dataset/73/mushroom [1]. Per chiarezza nella presentazione, creiamo un DataFrame di pandas dalle variabili in forma abbreviata originale e lo annotiamo con nomi di colonne appropriati e variabili in forma estesa. Utilizziamo la funzione replace di pandas con variabili in forma estesa prese dalla descrizione del dataset. La variabile target può assumere solo valori True e False – gli autori del dataset hanno agito in modo sicuro e hanno classificato i funghi dubbi come non commestibili.

Dopo aver controllato il dataset per valori mancanti, scopriamo che solo una colonna – stalk_root – è interessata. Eliminiamo questa colonna.

L’esplorazione del dataset rivela che i dati sono abbastanza bilanciati: Dei 8124 funghi, 4208 sono…