Próbuję zrozumieć, jak działa XGBoost. Już rozumiem, w jaki sposób drzewa wzmocnione gradientem działają na sklearn Pythona. Nie jest dla mnie jasne, czy XGBoost działa w ten sam sposób, ale szybciej, czy istnieją fundamentalne różnice między nim a implementacją Pythona.
Kiedy czytam ten artykuł
http://learningsys.org/papers/LearningSys_2015_paper_32.pdf
Wydaje mi się, że wynik końcowy wychodzący z XGboost jest taki sam jak w implementacji Pythona, jednak główna różnica polega na tym, jak XGboost znajduje najlepszy podział do wykonania w każdym drzewie regresji.
Zasadniczo XGBoost daje ten sam wynik, ale jest szybszy.
Czy to prawda, czy brakuje mi czegoś jeszcze?
źródło
n_jobs
dostępnego parametru interfejsu; równoległe przetwarzanie nie jest możliwe wewnętrznie przy implementacji algorytmu przez sklearn.W przeciwieństwie do zwiększania gradientu Sklearn, Xgboost dokonuje również regularyzacji drzewa, aby uniknąć nadmiernego dopasowania i skutecznie radzi sobie z brakującymi wartościami. Poniższy link może pomóc w dokładnym nauczeniu się xgboost https://www.youtube.com/watch?v=Vly8xGnNiWs
źródło
XGboost jest implementacją GBDT z randmizacją (używa próbkowania coloumn i próbkowania wierszy). Próbkowanie rzędowe jest możliwe, ponieważ nie wykorzystuje się wszystkich danych treningowych dla każdego modelu podstawowego GBDT. Zamiast używać wszystkich danych szkoleniowych dla każdego modelu podstawowego, próbkujemy podzbiór wierszy i używamy tylko tych wierszy danych, aby zbudować każdy z modeli podstawowych. Zapewnia to mniejszą szansę na przeregulowanie, co jest poważnym problemem w przypadku prostego GBDT, który XGBoost próbuje rozwiązać za pomocą tej randomizacji.
źródło