Gli alberi fanno domande
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 27 di 58.
Questo capitolo si conclude con un albero che spiega un prestito agricolo. Un albero decisionale gioca a venti domande: una domanda sì o no alla volta su una caratteristica, fino ad arrivare a una risposta:
L’addestramento sceglie ogni domanda in modo che le sue risposte suddividano le classi nel modo più netto possibile:
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train) # lunghezza e larghezza dei petali, cm
print(tree.predict([[4.5, 1.4]]))Questo stampa [1], versicolor. max_depth=2 consente due domande per percorso. Non è necessario ridimensionare: ogni domanda legge una caratteristica.
Sfida
MedioUn negozio di noleggio di fotocamere invia un promemoria quando è possibile che l'attrezzatura venga restituita in ritardo. Il codice iniziale suddivide i noleggi passati e legge un nuovo noleggio nella tabella a una riga new_rental.
- Allena un albero decisionale con al massimo 2 domande per percorso (
random_state=0). - Stampa la sua accuratezza sul test (3 decimali) e la sua risposta per il nuovo noleggio:
likely lateper 1,likely on timeper 0.
Per un altro negozio:
Test accuracy: 0.792
This rental: likely on timeProvalo tu
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Noleggi precedenti: 1 in late significa che l'attrezzatura è stata restituita in ritardo
rentals = pd.read_csv("rentals.csv")
features = ["rental_weeks", "gear_value_usd", "customer_age", "late_before"]
X_train, X_test, y_train, y_test = train_test_split(rentals[features], rentals["late"], test_size=0.25, random_state=0)
# Un nuovo noleggio: settimane prenotate, valore dell'attrezzatura, età del cliente e numero di restituzioni in ritardo fino a oggi
weeks = int(input())
value = int(input())
age = int(input())
late_before = int(input())
new_rental = pd.DataFrame([[weeks, value, age, late_before]], columns=features)
# 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