Какво е XGBoost алгоритъм?

XGBoost или Extreme Gradient boost е алгоритъм за машинно обучение, който се използва за внедряване на градиентни дървесни решения. Защо дървета с решения? Когато говорим за неструктурирани данни като изображенията, неструктурирани текстови данни и др., ANN моделите (Изкуствена невронна мрежа) изглежда се намират в горната част, когато се опитваме да прогнозираме. Докато, когато говорим за структурирани / полуструктурирани данни, дърветата на решения в момента са най-добрите. XGBoost беше основно създаден за подобряване на скоростта и производителността на машинните модели за обучение и много добре изпълняваше целта.

Работа на XGBoost алгоритъм

XGBoost разполага с алгоритъм за учене на дърво, както и с обучението с линеен модел и поради това е в състояние да прави паралелни изчисления на една машина.

Това прави XGBoost алгоритъма 10 пъти по-бърз от който и да е от съществуващите алгоритми за увеличаване на градиента.

XGBoost и GBM (т.е. машини за усилване на градиентите) използват дървесни методи, като използват архитектурата на градиентно спускане.

Областта, в която XGBoost оставя другите GBM, е областта на оптимизация на системата и подобрения над алгоритмите.

Нека видим подробно тези:

Оптимизация на системата:

1. Подрязване на дървета - Алгоритъмът на XGBoost използва първоначалния подход за разлика от критерия за спиране за разделяне на дървета, използван от GBMS, който е алчен по природа и зависи и от критерия за отрицателна загуба. Вместо това XGBoost използва функцията / параметър за максимална дълбочина и по този начин подрязва дървото в посока назад.

2. Паралелизация - Процесът на последователно изграждане на дърво се извършва с помощта на паралелизираната им реализация в алгоритъма XGBoost. Това става възможно благодарение на външните и вътрешните бримки, които са взаимозаменяеми. Външният цикъл изброява листните възли на дърво, докато вътрешният цикъл ще изчисли характеристиките. Също така, за да започне външният цикъл, вътрешният цикъл трябва да бъде завършен. Този процес на превключване подобрява работата на алгоритъма.

3. Оптимизация на хардуера - оптимизацията на хардуера също беше разгледана по време на проектирането на XGBoost алгоритъма. Вътрешните буфери са разпределени за всяка от нишките, за да се съхраняват градиентните статистики.

Алгоритмични подобрения:

  • Осъзнаване на Sparsity - Известно е, че XGBoost много ефективно се справя с всички различни видове модели на пестеливост . Този алгоритъм научава липсващата стойност на гнездото, като вижда загубата на обучение.
  • Регуларизация - За да се предотврати препълването, той коригира по-сложни модели, като прилага както LASSO (наричан също L1), така и регуларизация на Ridge (наричан също L2).
  • Cross-Validation - Алгоритъмът на XGBoost има вградени функции за кръстосано валидиране, които се прилагат при всяка итерация при създаването на модела. Това предотвратява необходимостта от изчисляване на броя на необходимите засилващи итерации.
  • Разпределена претеглена квантилна скица - Алгоритъмът XGBoost използва разпределената претеглена квантилна скица, за да получи оптималния брой точки за разделяне сред претеглените набори от данни

Характеристики на XGBoost

Въпреки че XGBoost е проектиран да подобрява значително скоростта и производителността на машинното обучение, той предлага и голям брой усъвършенствани функции.

A) Характеристики на модела

Характеристиките като тази на научен комплект за регулиране на обучението и внедряване на R език се поддържат от XGBoost. Основните методи за подсилване на градиента, които се поддържат са:

  • Stohastic Gradient Boosting - Колона, ред и колона на разделени нива могат да бъдат извадени под-извадка.
  • Ускоряване на градиента
  • Regularized Gradient Boosting - XGBoost коригира по-сложни модели, като прилага както LASSO (наричан още L1), така и регуларизация на Ridge (наричан също L2).

Б) Функции на системата

Характеристиките на системата включват:

1. Разпределено изчисление - Тази функция се използва за обучение на много големи модели чрез прилагане на клъстер от машини.

2. Паралелизация - по време на обучението всички CPU ядра се използват за паралелизация на конструкцията на дървото

3. Оптимизация на кеша - Алгоритмите и структурите от данни се кешират, за да се използва най-добре хардуера.

4. Извън изчисленията на основните - За наборите от данни, които не се вписват в паметта, XGBoost предполага основните изчисления.

В) Алгоритъмни характеристики

Една от основните цели на алгоритъма на XGBoost беше да използва най-добре всички налични ресурси. Някои от основните алгоритмични характеристики на XGBoost са:

  • Структура на блока - Тази функция се използва за подпомагане на изграждането на дърво при паралелизация.
  • Sparse Aware - Когато стойностите липсват в набора от данни, тази функция автоматично ще се погрижи за това.
  • Продължаващо обучение - Когато моделът е готов с новите данни, моделът може да бъде допълнително подсилен с помощта на тази функция.

Защо да използвате XGBoost?

Основната цел, която служи на XGBoost, е:

  • Скорост на изпълнение
  • Производителност на модела

Нека обсъдим и двете.

1. Скорост на изпълнение

Когато сравняваме XGBoost с други алгоритми за увеличаване на градиентите, XGBoost се оказва наистина бърз, приблизително 10 пъти по-бърз от другите реализации.

Szilard Pafka извърши някои експерименти, които бяха насочени към оценка на скоростта на изпълнение на различни алгоритми за изпълнение на произволни гори. По-долу е направена кратка снимка на резултатите от експеримента:

Оказа се, че XGBoost е най-бързият. Повече четене можете да намерите тук

2. Изпълнение на модела

Когато говорим за неструктурирани данни като изображенията, неструктурирани текстови данни и др., ANN моделите (Изкуствена невронна мрежа) изглежда се намират в горната част, когато се опитваме да прогнозираме. Докато когато говорим за структурирани / полуструктурирани данни, дърветата на решенията в момента са най-добрите и когато се реализират с помощта на XGBoost, никой друг усилващ алгоритъм не може да преодолее това към момента.

Алгоритъмът, използван от XGboost

Алгоритъмът XGBoost използва алгоритъма за подсилване на градиента на решението.

Методът за увеличаване на градиента създава нови модели, които изпълняват задачата да предскажат грешките и остатъците от всички предишни модели, които след това, от своя страна, се събират и след това се прави окончателното прогнозиране.

Заключение: Алгоритъм на XGBoost

В този алгоритъм на XGBoost научихме за алгоритъма на XGBoost, който се използва за машинно обучение. Тогава видяхме работата на този алгоритъм, неговите основни характеристики и защо той е перфектен избор за прилагане на градивни стимулиращи дървета решения.

Препоръчителни статии

Това е ръководство за алгоритма на XGBoost. Тук обсъдихме неговата концепция, функции, използване за машинно обучение, работа на алгоритъм в XGBoost. Можете също да разгледате следните статии, за да научите повече -

  1. NLP в Python
  2. Алгоритъм за проследяване на Рей
  3. Алгоритъм за цифров подпис
  4. Въпроси за интервю за алгоритъм
  5. Криптография с цифров подпис

Категория: