Baumtiefe
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 29 von 58.
Ein Baum kann so lange weiterfragen, bis jede Trainingszeile ihre eigene Antwort hat. Dann hat er auswendig gelernt, nicht gelernt:
Tiefe Bäume lernen das Rauschen ihrer eigenen Trainingszeilen, daher erreicht die Testgenauigkeit ihren Höchstwert und fällt dann ab. Probiere verschiedene Tiefen aus:
train = []
test = []
for d in range(1, 13):
tree = DecisionTreeClassifier(max_depth=d, random_state=0)
tree.fit(X_train, y_train)
train.append(tree.score(X_train, y_train))
test.append(tree.score(X_test, y_test))Auf diesen Monden schneidet Tiefe 6 bei neuen Zeilen am besten ab: Behalte sie vorerst bei. Ab Tiefe 8 ist der Baum bei seinen gespeicherten Zeilen perfekt, bei den übrigen jedoch schlechter.
Aufgabe
MittelEine Teleskopdurchmusterung sortiert Himmelsobjekte in Sterne und Galaxien. Der Ausgangscode teilt sie auf und richtet das Diagramm ein.
- Trainiere für jede Tiefe in
depthseinen Baum (random_state=0) und speichere beide Genauigkeitswerte. - Gib die Tiefe mit der besten Testgenauigkeit wie unten aus.
- Zeichne beide Linien mit den Beschriftungen
trainundtest, markiere die beste Tiefe mit einer gestricheltenax.axvline, füge eine Legende hinzu und zeige das Diagramm an.
Für einen Mangosortierer:
Best depth: 5, test accuracy 0.867Dann beschreibt Coddy dein Diagramm. Das Diagramm sieht so aus:
Probier es selbst
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Eine Zeile pro Himmelsobjekt in einer Teleskopdurchmusterung: 1 in galaxy bedeutet eine Galaxie, 0 einen Stern
sky = pd.read_csv("sky.csv")
features = ["brightness_mag", "size_arcsec", "roundness", "color_index"]
X_train, X_test, y_train, y_test = train_test_split(sky[features], sky["galaxy"], test_size=0.25, random_state=0)
depths = range(1, 11)
fig, ax = plt.subplots()
ax.set_title("Star or Galaxy?")
ax.set_xlabel("Tree depth")
ax.set_ylabel("Accuracy")
# 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