Gradient Boosting
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 43 di 58.
Una foresta fa crescere i suoi alberi uno accanto all’altro. Il gradient boosting li fa crescere uno dopo l’altro: ogni nuovo albero impara ciò che gli alberi precedenti continuano a sbagliare.
Qui adatta le vendite di un bar di smoothie, albero dopo albero:
Per la classificazione, il modello è GradientBoostingClassifier:
from sklearn.ensemble import GradientBoostingClassifier
boost = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=0)
boost.fit(X_train, y_train)learning_rate determina quanta parte di ogni correzione mantenere. I passi piccoli sono prudenti, quindi servono più alberi.
Sfida
MedioUn coltivatore di orchidee vuole sapere quali piante fioriranno. Il codice iniziale suddivide orchids.csv, valuta una foresta e legge un numero di alberi.
- Per ogni tasso in
rates, addestra il boosting con quel numero di alberi (random_state=0) e stampa la sua accuratezza sul test. - Stampa il tasso migliore. In caso di parità, mantieni quello precedente.
Per un altro coltivatore e 20:
Forest: 0.860
Boosting at rate 0.01: 0.600
Boosting at rate 0.1: 0.860
Boosting at rate 1.0: 0.900
Best rate for 20 trees: 1.0Poi prova alcuni numeri di alberi: quando il boosting supera la foresta?
Provalo tu
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
# Orchidee sugli scaffali di un coltivatore: fiorite quest'anno (1) oppure no (0)
orchids = pd.read_csv("orchids.csv")
X = orchids.drop(columns="bloomed")
y = orchids["bloomed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())
rates = [0.01, 0.1, 1.0]
# Non modificare le righe seguenti: la foresta con cui fare il confronto
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(f"Forest: {forest.score(X_test, y_test):.3f}")
# 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