Xgboost w SKLEAARN

Xgboost w SKLEAARN

Bardziej efektywna odmiana struktury zwiększania gradientu, która obejmuje zarówno liniowe metody uczenia się modelu, jak i metody uczenia się drzew nazywa się ekstremalnym wzmocnieniem gradientu (XGBOOST). Jest opracowywany na algorytmie zwiększania gradientu, który wytwarza zespół słabych modeli prognozowania, często drzew decyzyjny, jako model prognozy. Konkursy na uczenie maszynowe często zawierają xgboost. Ważne jest, aby zrozumieć przyczyny i mechanizmy udanej działalności tego algorytmu. Dowiemy się o drzewach decyzyjnych, wzmocnieniu gradientów, XGBOOST i ich wdrożeniu w tym artykule.

Jakie są drzewa decyzyjne?

Algorytm komputerowy zwany algorytmem drzewa decyzyjnego tworzy drzewo decyzyjne z dostarczonego zestawu danych. Zestaw danych będzie miał atrybuty, czasem znane jako cechy lub cechy, oraz atrybut klasowy. Cel i wynik to inne słowa dla cech klasowych. Ta cecha jest tym, czego mamy nadzieję przewidzieć. Algorytm drzewa decyzyjnego tworzy model drzewa decyzyjnego. Węzeł główny, węzły liściowe i krawędzie składają się na model drzewa decyzyjnego. Algorytm drzewa decyzyjnego jest rekurencyjny, co oznacza, że ​​wywołuje się ponownie i kontynuuje przetwarzanie danych do momentu spełnienia warunków zatrzymania.

Przykład drzewa decyzyjnego z Wikipedii

Co jest wzmacnianie gradientu?

W przypadku problemów z regresją i klasyfikacją zwiększenie gradientu jest techniką uczenia maszynowego, która generuje model w postaci grupy słabych modeli prognostycznych, często drzew decyzyjny. Podobnie jak inne techniki zwiększania, konstruuje model etapami, ale uogólnia go, umożliwiając optymalizację dowolnej funkcji straty. W zwiększaniu gradientu zaangażowane są trzy niezbędne procesy:

  • Optymalizacja funkcji straty to pierwszy krok, który należy zrobić. Wymagana jest funkcja różnicującej straty. Jak dobrze model uczenia maszynowego pasuje do danych dla określonego zjawiska, jest określany przez jego funkcję utraty.
  • Używanie słabego ucznia jest drugim krokiem. Drzewo decyzyjne służy jako słaby uczeń w wzmacniaczy gradientu. Drzewa regresji, które wytwarzają rzeczywiste wartości dla podziałów i których wyjście można dodać razem, są specjalnie używane, umożliwiając dodanie danych wyjściowych z kolejnych modeli do korygowania resztek prognoz z poprzedniej iteracji.
  • Trzeci krok polega na dodaniu wielu słabych uczniów. Dodaje się jeden po drugim, drzewa decyzyjne. Podczas dodawania drzew stosuje się podejście do zejścia w celu zmniejszenia straty. Gradientowy element wzmacniaczy gradientu jest taki. W uczeniu maszynowym często stosuje się optymalizację zejścia gradientu do identyfikacji parametrów podłączonych do pojedynczego modelu, który poprawia określoną funkcję straty.

Co to jest xgboost?

Moduł Python do wykonywania wzmacniających gradient nazywa się XGBOOST (Extreme Gradient Boosting). Drzewa decyzyjne wzmocnione gradientem służą jako podstawa. Jest to algorytm zwiększania, który zwiększa niezawodność i dokładność modelu na różnych konkurencyjnych platformach, takich jak Kaggle. Najlepsze algorytmy dla małych i średnich danych strukturalnych lub tabelarycznych są oparte na drzewach decyzyjnych. Konstrukcja modelu przy użyciu XGBOOST jest szybka i skuteczna.

Gdzie możemy użyć xgboost?

  • W przypadku dużej liczby obserwacji danych szkoleniowych.
  • Liczba funkcji jest mniejsza niż liczba obserwacji.
  • Gdy wskaźnik wydajności modelu jest brany pod uwagę.

Wdrożenie w Sklearn

# Importowanie wymaganych bibliotek
ze Sklearn.Zestawy danych importuj Make_classification
ze Sklearn.Model_Selection Import Train_Test_Split
import xgboost
# Tworzenie zestawu danych
X, y = Make_classification (n_samples = 1000, n_features = 5, n_informative = 2, n_redundant = 0, Random_State = 0, shuffle = false)
druk („funkcje to”, x [: 20])
druk („etykiety są”, y [: 20])
# podział danych na pociąg i test
X_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.2, Random_State = 0)
# Tworzenie instancji xgboost
xgb_classifier = xgboost.Xgbclassifier ()
# dopasowanie modelu do danych pociągu
xgb_classifier.fit (x_train, y_train)
# Dokonywanie prognoz
Prognozy = xgb_classifier.przewidy (x_test)
# Drukowanie 20 prognoz
druk („prognozy są”, prognozy [: 20])

Wyjście

Cechy to [[-1.66853167 -1.29901346 0.2746472 -0.60362044 0.70885958]
[-2.9728827 -1.08878294 0.42281857 -3.11685659 0.64445203]
[-0.59614125 -1.37007001 -1.91374267 0.66356158 -0.1540724]
[-1.06894674 -1.17505738 1.19361168 -0.09816121 -0.88661426]
[-1.30526888 -0.96592566 -0.14735366 1.05980629 0.02624662]
[-2.18261832 -0.97011387 -0.11433516 0.74355352 0.21035937]
[-1.24797892 -1.13094525 -0.00592741 1.36606007 1.55511403]
[-1.35308792 -1.06633681 0.61332623 -0.28595915 1.49691099]
[-1.13449871 -1.27403448 1.18311956 0.71889717 -1.21607658]
[-0.38457445 -1.08840346 0.1406719 -0.74367217 -0.15901225]
[-1.0106506 -0.52017071 0.24005693 0.10015941 -0.47517511]
[-0.58310155 -1.18236446 1.27295375 -1.69613127 0.73018353]
[-0.29760388 -1.45995253 -1.85748327 0.38259814 -0.88690433]
[-0.86057581 -1.01530275 0.87830376 0.08645252 0.24770638]
[-2.47091771 -1.21696663 -1.01827933 -0.65457013 0.20721739]
[-1.33090082 -1.01316175 0.58356993 2.92909624 0.22285832]
[0.74840002 -0.91748674 0.97603753 -1.55693393 -1.32989186]
[-1.05483466 -0.9320408 -0.35549477 -1.1974277 1.48639925]
[-2.19888276 -1.17327072 -0.41021869 1.38218189 1.48678247]
[-0.68305478 -0.94253787 0.04277972 0.50179975 -0.05609947]]
Etykiety to [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Prognozy to [1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0]

Wniosek

Omówiliśmy algorytm XGBOOST w uczeniu maszynowym. Jest to wdrożenie techniki zwiększania gradientu, która jest dziś szeroko stosowana w konkursach. Widzieliśmy, dlaczego ten algorytm działa dobrze i czego używa pod maską. Na koniec przeszliśmy również wdrożenie XGBOOS w Python.