Dlaczego lasy działają
Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 42 z 58.
Drzewa w lesie celowo się różnią. Każde jest trenowane na próbie bootstrapowej: wierszach losowanych ze zwracaniem, więc niektóre się powtarzają, a inne są pomijane.
Każde pytanie wybiera też spośród losowo wybranych kilku cech. Drzewa popełniają różne błędy, a głosowanie je eliminuje. Dwa gatunki świetlików:
Las zachowuje pas tylko tam, gdzie zgadza się większość drzew.
Drzewa znajdują się w forest.estimators_:
third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))To wypisuje 0.737. Cały las uzyskuje wynik 0.895.
Wyzwanie
ŚredniCzy las pokonuje własne drzewa? Kod początkowy dopasowuje forest do danych z riders.csv — rowerzystów, którzy ukończyli lub nie ukończyli 160-kilometrowej jazdy w czasie krótszym niż 6 godzin — i przygotowuje wykres.
- Oblicz wynik każdego drzewa w lesie na wierszach testowych.
- Utwórz histogram wyników z użyciem
bins=10i zaznaczforest_accczerwoną pionową linią. - Wypisz, ile drzew pokonuje las.
Inna jazda wypisała The forest beats 88 of its 100 trees i narysowała taki wykres:
Coddy opisze następnie Twój wykres.
Spróbuj swoich sił
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Uczestnicy charytatywnego przejazdu na dystansie 160 km: ukończyli go w mniej niż 6 godzin (1) lub nie (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() # zwykła tablica, w postaci oczekiwanej przez drzewa lasu
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")
# Napisz 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óż modelPoćwicz samodzielnie: Kompilator Python online