Perché funzionano le foreste
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 42 di 58.
Gli alberi di una foresta differiscono intenzionalmente. Ognuno viene addestrato su un campione bootstrap: righe estratte casualmente con reinserimento, quindi alcune si ripetono e altre restano escluse.
Ogni domanda seleziona anche alcuni elementi a caso. Gli alberi fanno errori diversi e il voto li annulla. Due specie di lucciole:
La foresta mantiene una striscia solo dove la maggior parte degli alberi è d'accordo.
Gli alberi si trovano in forest.estimators_:
third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))Questo stampa 0.737. L’intera foresta ottiene un punteggio di 0.895.
Sfida
MedioUna foresta batte i propri alberi? Il codice iniziale adatta forest a riders.csv, i ciclisti che hanno completato o meno una pedalata di 160 km in meno di 6 ore, e prepara il grafico.
- Calcola il punteggio di ogni albero della foresta sulle righe di test.
- Rappresenta i punteggi con un istogramma,
bins=10, e indicaforest_acccon una linea verticale rossa. - Stampa quanti alberi batte la foresta.
Un'altra pedalata ha stampato The forest beats 88 of its 100 trees e ha disegnato questo:
Coddy descrive poi il tuo grafico.
Provalo tu
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Partecipanti a una pedalata di beneficenza di 160 km: hanno concluso in meno di 6 ore (1) oppure no (0)
riders = pd.read_csv("riders.csv")
features = ["weekly_km", "long_ride_km", "age", "years_riding", "rest_days", "sleep_hours"]
X = riders[features].to_numpy() # un semplice array, nel formato atteso dagli alberi della foresta
y = riders["under_6h"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
forest_acc = forest.score(X_test, y_test)
fig, ax = plt.subplots()
ax.set_title("The Forest and Its Trees")
ax.set_xlabel("Test accuracy")
ax.set_ylabel("Trees")
# 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 prestiti9Insiemi
Foreste casualiPerché funzionano le foresteGradient BoostingRiepilogo: il guardiano della forestaEsercitati da solo: Compilatore Python online