Що таке алгоритм XGBoost?

XGBoost або Extreme Gradient boost - алгоритм машинного навчання, який використовується для реалізації дерев рішень, що збільшують градієнт. Чому дерева рішень? Коли ми говоримо про неструктуровані дані, такі як зображення, неструктуровані текстові дані тощо, моделі ANN (Штучна нейронна мережа), здається, знаходяться вгорі, коли ми намагаємось передбачити. У той час, коли ми говоримо про структуровані / напівструктуровані дані, дерева рішень на даний момент є найкращими. XGBoost в основному був розроблений для значного підвищення швидкості та продуктивності моделей машинного навчання, і він дуже добре виконував мету.

Робота алгоритму XGBoost

XGBoost має алгоритм вивчення дерев, а також лінійну модель навчання, і завдяки цьому він може робити паралельні обчислення на одній машині.

Це робить алгоритм XGBoost в 10 разів швидшим, ніж будь-який із існуючих алгоритмів підвищення градієнта.

XGBoost і GBM (тобто машини для підвищення градієнта) використовують дерева-методи, використовуючи архітектуру спуску градієнта.

Область, де XGBoost залишає інші ГБМ позаду, - це область оптимізації системи та вдосконалення над алгоритмами.

Давайте детально розглянемо:

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

1. Обрізка дерев - Алгоритм XGBoost використовує підхід на перших глибинах на відміну від критерію зупинки для розщеплення дерев, який використовується GBMS, який є жадним за своєю природою, а також залежить від критерію негативних втрат. Натомість XGBoost використовує функцію / параметр максимальної глибини, а отже, обрізає дерево у зворотному напрямку.

2. Паралелізація - Процес послідовної побудови дерева здійснюється за допомогою паралельної реалізації в алгоритмі XGBoost. Це стає можливим завдяки зовнішній і внутрішній петлях, які взаємозамінні. Зовнішня петля перелічує вузли листя дерева, тоді як внутрішня петля обчислює особливості. Також, щоб зовнішня петля почалася, внутрішня петля повинна завершитися. Цей процес перемикання покращує продуктивність алгоритму.

3. Оптимізація обладнання - Оптимізація обладнання також була розглянута при розробці алгоритму XGBoost. Внутрішні буфери виділяються для кожного з потоків для зберігання статистики градієнта.

Алгоритмічні удосконалення:

  • Поінформованість про обмеженість - Відомо, що XGBoost дуже ефективно обробляє всі різні типи шаблонів зменшеності. Цей алгоритм дізнається відсутнє значення гнізда, бачачи втрату тренувань.
  • Регуляризація - для запобігання надмірного пристосування вона виправляє більш складні моделі, застосовуючи як LASSO (також званий L1), так і регуляризацію хребта (також називається L2).
  • Перехресна перевірка - Алгоритм XGBoost має вбудовані функції перехресної перевірки, які реалізуються при кожній ітерації у створенні моделі. Це запобігає необхідності обчислити кількість необхідних прискорених ітерацій.
  • Розподілений зважений квантильний ескіз - алгоритм XGBoost використовує розподілений зважений квантильний ескіз для отримання оптимальної кількості розділених точок серед зважених наборів даних

Особливості XGBoost

Хоча XGBoost був розроблений для значного підвищення швидкості та продуктивності моделей машинного навчання, він також пропонує велику кількість розширених функцій.

А) Особливості моделі

XGBoost підтримує такі функції, як функція регуляризації навчання наукових програм та реалізація мови R. Основні методи підвищення градієнта, які підтримуються:

  • Стохастичне підвищення градієнта - стовпчик, рядок та стовпець на рівні розбиття можна під вибіркою.
  • Градієнтне підвищення
  • Регульоване підвищення градієнта - 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. Криптографія цифрового підпису

Категорія: