Głębokość drzewa
Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 29 z 58.
Drzewo może pytać dalej, aż każdy wiersz treningowy będzie miał własną odpowiedź. Wtedy zapamiętało, a nie nauczyło się:
Głębokie drzewa uczą się szumu z własnych wierszy treningowych, więc dokładność na zbiorze testowym osiąga szczyt, a potem spada. Wypróbuj kilka głębokości:
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))Na tych księżycach głębokość 6 najlepiej sprawdza się na nowych wierszach: na razie ją zachowaj. Przy głębokości 8 drzewo doskonale radzi sobie z zapamiętanymi wierszami, a gorzej z pozostałymi.
Wyzwanie
ŚredniPrzegląd teleskopowy klasyfikuje obiekty na niebie jako gwiazdy i galaktyki. Kod startowy dzieli je na zbiory i przygotowuje wykres.
- Dla każdej głębokości w
depthswytrenuj drzewo (random_state=0) i zachowaj dokładność dla obu zbiorów. - Wypisz głębokość z najlepszą dokładnością testową, jak poniżej.
- Narysuj obie linie, oznaczone etykietami
trainitest, zaznacz najlepszą głębokość przerywaną liniąax.axvline, dodaj legendę i wyświetl wykres.
Dla sortera mango:
Best depth: 5, test accuracy 0.867Następnie Coddy opisze twój wykres. Ich wykres wygląda tak:
Spróbuj swoich sił
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Jeden wiersz na każdy obiekt niebieski w przeglądzie teleskopowym: 1 w galaxy oznacza galaktykę, a 0 gwiazdę
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")
# Wpisz swój kod poniżej
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Uczenie nadzorowane
1Twój pierwszy model
Uczenie się na przykładachZbiory treningowe i testoweDopasowywanie i przewidywanieOcena modeluPodsumowanie: Sortownik nasion4Regresja logistyczna
Przewidywanie „tak” lub „nie”Próg decyzyjnyWagi jako dowodyWiele klasPodsumowanie: filtr spamu2Najbliżsi sąsiedzi
Jak działa k-NNWybór kGranice decyzyjneSkalowanie dla sąsiadówPodsumowanie: sąsiedzi w zbiorze Wine5Ocena klasyfikatorów
Macierz pomyłekPrecyzja i czułośćWynik F1Niezrównoważone klasyKrzywe ROCPodsumowanie: test przesiewowy8Walidacja krzyżowa
Walidacja k-krotnaUczciwe porównywanie modeliPrzeszukiwanie siatkiPodsumowanie: naprawa deskorolki11Projekt: Gatunki pingwinów
Poznaj pingwinyPrzygotuj daneWybierz modelDopracuj zwycięski modelWdróż model3Regresja liniowa
Przewidywanie wartości liczbowychWiele cechPomiar błędówWykresy resztPodsumowanie: wypożyczanie rowerów6Drzewa decyzyjne
Drzewa zadają pytaniaCzytanie drzewaGłębokość drzewaWażność cechPodsumowanie: decyzje kredytowePoćwicz samodzielnie: Kompilator Python online