Importanza delle caratteristiche
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 30 di 58.
Su quali caratteristiche si basa un albero? feature_importances_ assegna a ogni caratteristica la propria quota delle divisioni effettuate dalle sue domande, e le quote sommate danno 1:
Ordinati in una Series, formano un grafico in ordine. ax.barh disegna le barre in orizzontale, così i nomi lunghi ci stanno:
imp = pd.Series(tree.feature_importances_, index=iris.feature_names).sort_values()
ax.barh(imp.index, imp.values)Uno 0 significa che l’albero non ha mai chiesto informazioni su quella caratteristica. I sepali potrebbero comunque essere importanti: i petali hanno già detto all’albero cosa avrebbero fatto.
Sfida
MedioUna scuola di surf vuole sapere cosa fa sì che i principianti riescano a stare in piedi sulla tavola durante la loro prima settimana. Il programma legge una profondità; il codice iniziale addestra un albero con quella profondità e prepara il grafico.
- Inserisci le importanze in una Series denominata in base alla caratteristica, dalla più piccola alla più grande.
- Stampa la caratteristica più importante (3 decimali) e le caratteristiche mai prese in considerazione, come sotto.
- Rappresentale con barre orizzontali e visualizza il grafico.
Per una scuola di nuoto:
Top feature: pool_hours (0.612)
Never asked: ['goggles']Poi Coddy descrive il tuo grafico. Il loro è così:
Provalo tu
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
depth = int(input())
# Una riga per ogni principiante: 1 in standing significa che è riuscito a stare in piedi sulla tavola durante la prima settimana
surf = pd.read_csv("surfschool.csv")
features = ["age", "fitness", "days_surfed", "skated_before", "lesson_hours", "wetsuit_fit"]
X_train, X_test, y_train, y_test = train_test_split(surf[features], surf["standing"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=depth, random_state=0)
tree.fit(X_train, y_train)
fig, ax = plt.subplots(layout="constrained") # lascia spazio ai nomi lunghi
ax.set_title("What Gets Beginners Standing?")
ax.set_xlabel("Importance")
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento supervisionato
1Il tuo primo modello
Imparare dagli esempiInsiemi di addestramento e testAdattare e prevedereValutare un modelloRiepilogo: Ordinatore di semi4Regressione logistica
Previsioni sì o noLa soglia decisionaleI pesi come evidenzePiù classiRiepilogo: filtro antispam2Vicini più prossimi
Come decide k-NNScegliere kConfini decisionaliNormalizzare le scale per i viciniRiepilogo: vicini del vino5Misurare i classificatori
La matrice di confusionePrecisione e richiamoIl punteggio F1Classi sbilanciateCurve ROCRiepilogo: test di screening8Convalida incrociata
Validazione K-foldConfronto equo tra modelliRicerca a grigliaRiepilogo: riparazioni di skateboard11Progetto: specie di pinguini
Incontra i pinguiniPrepara i datiScegli un modelloOttimizza il miglioreDistribuisci il modello3Regressione lineare
Prevedere numeriPiù caratteristicheMisurare gli erroriGrafici dei residuiRiepilogo: noleggio di biciclette6Alberi decisionali
Gli alberi fanno domandeLeggere un alberoProfondità dell’alberoImportanza delle caratteristicheRiepilogo: decisioni sui prestitiEsercitati da solo: Compilatore Python online