Boosting gradientowy
Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 43 z 58.
Las rośnie, a drzewa rosną obok siebie. Gradient boosting tworzy je jedno po drugim: każde nowe drzewo uczy się, co poprzednie drzewa nadal robią źle.
W tym przypadku dopasowuje sprzedaż baru ze smoothie, drzewo po drzewie:
W przypadku klas modelem jest 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 określa, jak dużą część każdej poprawki zachować. Małe kroki są ostrożne, więc potrzeba więcej drzew.
Wyzwanie
ŚredniHodowca storczyków chce wiedzieć, które rośliny zakwitną. Kod początkowy dzieli dane z pliku orchids.csv, ocenia las i odczytuje liczbę drzew.
- Dla każdej wartości w
rateswytrenuj model boostingowy z tą liczbą drzew (random_state=0) i wyświetl jego dokładność na zbiorze testowym. - Wyświetl najlepszą wartość. W przypadku remisu pozostaw wcześniejszą.
Dla innego hodowcy i wartości 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.0Następnie wypróbuj kilka wartości liczby drzew: kiedy boosting osiąga lepszy wynik niż las?
Spróbuj swoich sił
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
# Storczyki na półkach hodowcy: zakwitły w tym roku (1) lub nie (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]
# Nie zmieniaj poniższych wierszy: model lasu do porównania
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(f"Forest: {forest.score(X_test, y_test):.3f}")
# 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