Gradient Boosting
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 43 von 58.
Ein Wald lässt seine Bäume Seite an Seite wachsen. Gradient Boosting lässt sie nacheinander wachsen: Jeder neue Baum lernt, was die vorherigen Bäume noch falsch machen.
Hier werden die Verkäufe einer Smoothie-Bar Baum für Baum angepasst:
Für Klassen ist das Modell 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 legt fest, wie viel von jeder Korrektur übernommen wird. Kleine Schritte sind vorsichtig, daher werden mehr Bäume benötigt.
Aufgabe
MittelEin Orchideenzüchter möchte wissen, welche Pflanzen blühen werden. Das Starterprogramm teilt orchids.csv auf, bewertet einen Random Forest und liest die Anzahl der Bäume ein.
- Trainiere für jede Rate in
ratesein Boosting-Modell mit dieser Anzahl an Bäumen (random_state=0) und gib dessen Genauigkeit auf den Testdaten aus. - Gib die beste Rate aus. Bei Gleichstand behalte die frühere.
Für einen anderen Züchter und 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.0Probiere dann einige Baumanzahlen aus: Ab wann ist Boosting besser als der Random Forest?
Probier es selbst
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
# Orchideen auf den Regalen eines Züchters: dieses Jahr geblüht (1) oder nicht (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]
# Die folgenden Zeilen nicht ändern: der Wald zum Vergleich
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(f"Forest: {forest.score(X_test, y_test):.3f}")
# Schreibe deinen Code unten
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Überwachtes Lernen
1Dein erstes Modell
Aus Beispielen lernenTrainings- und TestdatensätzeAnpassen und VorhersagenEin Modell bewertenRückblick: Saatgutsortierer4Logistische Regression
Ja-Nein-VorhersagenDie EntscheidungsschwelleGewichte als IndizienMehrere KlassenRückblick: Spamfilter2Nächste Nachbarn
So entscheidet k-NNk wählenEntscheidungsgrenzenSkalierung für NachbarnRückblick: Wein-Nachbarn5Klassifikatoren bewerten
Die KonfusionsmatrixPräzision und TrefferquoteDer F1-ScoreUnausgewogene KlassenROC-KurvenRückblick: Screeningtest3Lineare Regression
Zahlen vorhersagenMehrere MerkmaleFehler messenResiduenplotsZusammenfassung: Fahrradverleih6Entscheidungsbäume
Bäume stellen FragenEinen Baum lesenBaumtiefeMerkmalswichtigkeitRückblick: Kreditentscheidungen9Ensembleverfahren
Random ForestsWarum Random Forests funktionierenGradient BoostingRückblick: Förster des Waldes12Abschließende Herausforderungen
Diabetes-FortschrittKreditgenehmigungHandgeschriebene ZiffernKundenabwanderungÜbe selbstständig: Online-Python-Compiler