Leggere un albero
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 28 di 58.
Le domande di un albero sono leggibili, quindi puoi controllare cosa ha imparato. Segui il percorso di un fiore lungo 5.1 cm e largo 1.6 cm nell'albero dell'iris:
export_text stampa le stesse domande come testo, un rientro per livello:
from sklearn.tree import export_text
print(export_text(tree, feature_names=["petal_length", "petal_width"]))Stampa:
|--- petal_width <= 0.80
| |--- class: 0
|--- petal_width > 0.80
| |--- petal_length <= 4.95
| | |--- class: 1
| |--- petal_length > 4.95
| | |--- class: 2Ogni riga risponde solo alle domande sul proprio percorso. La classe 2 è virginica, una risposta sensata per petali lunghi e larghi.
Sfida
MedioL’albero di un negozio di formaggi assegna a un formaggio una categoria: fresh, soft o hard, in base al suo contenuto d’acqua e alle settimane di stagionatura. Il codice iniziale lo addestra e legge un nuovo formaggio.
- Stampa le domande dell’albero con i nomi delle caratteristiche.
- Eseguilo, leggi le domande e completa
by_handin modo che ponga le stesse domande con if/else e restituisca la stessa risposta.
Dopo la stampa, per un formaggio che l’albero classifica come soft:
By hand: soft
The tree: softProvalo tu
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# Una fila por queso: contenido de agua (%), semanas de maduración y tipo
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)
# Un queso nuevo al que poner nombre
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)
# Escribe tu código a continuación: imprime el árbol y luego responde en by_hand del mismo modo que él
def by_hand(moisture, aged):
return "fresh"
# No cambies las líneas de abajo
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
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