Зображення редактора
Існує величезна кількість алгоритмів машинного навчання, здатних моделювати конкретні явища. У той час як деякі моделі використовують набір атрибутів, щоб перевершити інші, інші включають слабких учнів для використання решти атрибутів для надання додаткової інформації моделі, відомі як моделі ансамблю.
Передумова ансамблевих моделей полягає в тому, щоб покращити продуктивність моделі шляхом поєднання прогнозів з різних моделей шляхом зменшення їхніх помилок. Є дві популярні техніки ансамблю: мішок і посилення.
Bagging, або Bootstrapped Aggregation, навчає кілька окремих моделей на різних випадкових підмножинах навчальних даних, а потім усереднює їхні прогнози для отримання остаточного прогнозу. Бустінг, з іншого боку, передбачає послідовне навчання окремих моделей, коли кожна модель намагається виправити помилки, зроблені попередніми моделями.
Тепер, коли ми маємо контекст щодо моделей ансамблю, давайте двічі клацнемо модель ансамблю посилення, зокрема алгоритм Light GBM (LGBM), розроблений Microsoft.
LGBMClassifier розшифровується як Light Gradient Boosting Machine Classifier. Він використовує алгоритми дерева рішень для ранжування, класифікації та інших завдань машинного навчання. LGBMClassifier використовує нову техніку односторонньої вибірки на основі градієнта (GOSS) і об’єднання ексклюзивних функцій (EFB) для точної обробки великомасштабних даних, ефективно пришвидшуючи їх і зменшуючи використання пам’яті.
Що таке градієнтна одностороння вибірка (GOSS)?
Традиційні алгоритми посилення градієнта використовують усі дані для навчання, що може зайняти багато часу при роботі з великими наборами даних. З іншого боку, GOSS LightGBM зберігає всі екземпляри з великими градієнтами та виконує випадкову вибірку для екземплярів із малими градієнтами. Інтуїція, яка лежить в основі цього, полягає в тому, що екземпляри з великими градієнтами важче підібрати, і тому вони містять більше інформації. GOSS вводить постійний множник для екземплярів даних з малими градієнтами, щоб компенсувати втрату інформації під час вибірки.
Що таке об’єднання ексклюзивних функцій (EFB)?
У розрідженому наборі даних більшість ознак є нулями. EFB — це майже безвтратний алгоритм, який об’єднує/комбінує взаємовиключні функції (функції, які не є відмінними від нуля одночасно), щоб зменшити кількість вимірів, тим самим прискорюючи процес навчання. Оскільки ці функції є «ексклюзивними», вихідний простір функцій зберігається без значної втрати інформації.
Пакет LightGBM можна встановити безпосередньо за допомогою менеджера пакетів pip – python. Введіть наведену нижче команду в терміналі або в командному рядку, щоб завантажити та встановити бібліотеку LightGBM на ваш комп’ютер:
pip install lightgbm
Користувачі Anaconda можуть встановити його за допомогою команди «conda install», як зазначено нижче.
conda install -c conda-forge lightgbm
Залежно від вашої ОС ви можете вибрати спосіб встановлення за допомогою Це керівництво.
Тепер давайте імпортуємо LightGBM та інші необхідні бібліотеки:
import numpy as np
import pandas as pd
import seaborn as sns
import lightgbm as lgb
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
Підготовка набору даних
Ми використовуємо популярний набір даних «Титаніка», який містить інформацію про пасажирів «Титаніка» з цільовою змінною, яка вказує, вижили вони чи ні. Ви можете завантажити набір даних з Згорнути або скористайтеся наступним кодом, щоб завантажити його безпосередньо з Seaborn, як показано нижче:
titanic = sns.load_dataset('titanic')
Видаліть непотрібні стовпці, такі як «deck», «embark_town» і «alive», оскільки вони зайві або не сприяють виживанню жодної людини на кораблі. Далі ми помітили, що ознаки «age», «tare» і «embarked» мають відсутні значення – зауважте, що різні атрибути приписуються відповідними статистичними показниками.
# Drop unnecessary columns
titanic = titanic.drop(['deck', 'embark_town', 'alive'], axis=1) # Replace missing values with the median or mode
titanic['age'] = titanic['age'].fillna(titanic['age'].median())
titanic['fare'] = titanic['fare'].fillna(titanic['fare'].mode()[0])
titanic['embarked'] = titanic['embarked'].fillna(titanic['embarked'].mode()[0])
Нарешті, ми перетворюємо категоріальні змінні в числові змінні за допомогою категоріальних кодів панд. Тепер дані підготовлені для початку процесу навчання моделі.
# Convert categorical variables to numerical variables
titanic['sex'] = pd.Categorical(titanic['sex']).codes
titanic['embarked'] = pd.Categorical(titanic['embarked']).codes # Split the dataset into input features and the target variable
X = titanic.drop('survived', axis=1)
y = titanic['survived']
Навчання LGBMClassifier Model
Щоб розпочати навчання моделі LGBMClassifier, нам потрібно розділити набір даних на вхідні функції та цільові змінні, а також набори для навчання та тестування за допомогою функції train_test_split від scikit-learn.
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Давайте позначимо кодування категорійних («хто») і порядкових даних («клас»), щоб гарантувати, що модель постачається числовими даними, оскільки LGBM не використовує нечислові дані.
class_dict = { "Third": 3, "First": 1, "Second": 2
}
who_dict = { "child": 0, "woman": 1, "man": 2
}
X_train['class'] = X_train['class'].apply(lambda x: class_dict[x])
X_train['who'] = X_train['who'].apply(lambda x: who_dict[x])
X_test['class'] = X_test['class'].apply(lambda x: class_dict[x])
X_test['who'] = X_test['who'].apply(lambda x: who_dict[x])
Далі ми вказуємо гіперпараметри моделі як аргументи конструктору або можемо передати їх як словник методу set_params.
Останнім кроком для початку навчання моделі є завантаження набору даних шляхом створення екземпляра класу LGBMClassifier і підгонки його до навчальних даних.
params = { 'objective': 'binary', 'boosting_type': 'gbdt', 'num_leaves': 31, 'learning_rate': 0.05, 'feature_fraction': 0.9
}
clf = lgb.LGBMClassifier(**params)
clf.fit(X_train, y_train)
Далі давайте оцінимо продуктивність навченого класифікатора на невидимому або тестовому наборі даних.
predictions = clf.predict(X_test)
print(classification_report(y_test, predictions))
precision recall f1-score support 0 0.84 0.89 0.86 105 1 0.82 0.76 0.79 74 accuracy 0.83 179 macro avg 0.83 0.82 0.82 179
weighted avg 0.83 0.83 0.83 179
Налаштування гіперпараметрів
LGBMClassifier забезпечує велику гнучкість за допомогою гіперпараметрів, які ви можете налаштувати для оптимальної продуктивності. Тут ми коротко обговоримо деякі з ключових гіперпараметрів:
- кількість_листків: це основний параметр для керування складністю моделі дерева. В ідеалі значення num_leaves має бути менше або дорівнювати 2^(max_depth).
- min_data_in_leaf: Це важливий параметр для запобігання переобладнанню листового дерева. Його оптимальне значення залежить від кількості навчальних вибірок і num_leaves.
- max_depth: ви можете використовувати це, щоб явно обмежити глибину дерева. Найкраще налаштувати цей параметр на випадок переобладнання.
Давайте налаштуємо ці гіперпараметри та навчимо нову модель:
model = lgb.LGBMClassifier(num_leaves=31, min_data_in_leaf=20, max_depth=5)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print(classification_report(y_test, predictions))
precision recall f1-score support 0 0.85 0.89 0.87 105 1 0.83 0.77 0.80 74 accuracy 0.84 179 macro avg 0.84 0.83 0.83 179
weighted avg 0.84 0.84 0.84 179
Зауважте, що фактичне налаштування гіперпараметрів — це процес, який передбачає спроби й помилки, а також може керуватися досвідом і глибшим розумінням алгоритму посилення, а також предметними знаннями (знаннями предметної області) бізнес-проблеми, над якою ви працюєте.
У цій публікації ви дізналися про алгоритм LightGBM і його реалізацію на Python. Це гнучкий метод, який корисний для різних типів проблем класифікації та повинен бути частиною вашого інструментарію машинного навчання.
Відхі Чуг є стратегом штучного інтелекту та лідером цифрової трансформації, який працює на стику продуктів, науки та інженерії для створення масштабованих систем машинного навчання. Вона є визнаним лідером інновацій, автором і міжнародним доповідачем. Вона прагне демократизувати машинне навчання та позбутися жаргону, щоб кожен міг стати частиною цієї трансформації.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://www.kdnuggets.com/2023/07/lgbmclassifier-gettingstarted-guide.html?utm_source=rss&utm_medium=rss&utm_campaign=lgbmclassifier-a-getting-started-guide
- :є
- : ні
- :де
- 1
- 10
- 11
- 13
- 14
- 31
- 7
- 77
- 8
- 80
- 84
- 87
- 9
- a
- МЕНЮ
- прискорення
- точність
- фактичний
- Додатковий
- Додаткова інформація
- вік
- агрегація
- AI
- алгоритм
- алгоритми
- ВСІ
- дозволяє
- Також
- an
- та
- будь-який
- відповідний
- APT
- ЕСТЬ
- аргументація
- AS
- At
- Спроби
- Атрибути
- автор
- AVG
- нагородами
- BE
- оскільки
- починати
- за
- нижче
- КРАЩЕ
- підвищення
- Перерва
- коротко
- будувати
- бізнес
- by
- CAN
- нести
- випадок
- дитина
- Вибирати
- клас
- класифікація
- CFL
- код
- Коди
- Колони
- об'єднання
- складність
- постійна
- споживати
- містить
- контекст
- сприяти
- контроль
- конвертувати
- виправити
- створення
- дані
- набори даних
- справу
- рішення
- дерево рішень
- глибше
- демократизувати
- залежить
- глибина
- розвиненою
- різний
- цифровий
- цифрове перетворення
- розміри
- безпосередньо
- обговорювати
- do
- Ні
- домен
- скачати
- Падіння
- під час
- кожен
- фактично
- або
- Машинобудування
- забезпечувати
- рівним
- помилка
- помилки
- оцінювати
- все
- Ексклюзивний курс
- досвід
- експертиза
- швидше
- особливість
- риси
- остаточний
- Перший
- відповідати
- пристосування
- Гнучкість
- гнучкий
- після
- для
- від
- функція
- отримання
- градієнти
- керівництво
- рука
- обробляти
- важче
- Мати
- тут
- HTML
- HTTPS
- в ідеалі
- реалізація
- імпорт
- важливо
- удосконалювати
- in
- включати
- індивідуальний
- інформація
- ініціювати
- інновація
- вхід
- встановлювати
- установка
- екземпляр
- Міжнародне покриття
- перетин
- в
- Вводить
- інтуїція
- IT
- ЙОГО
- жаргон
- KDnuggets
- ключ
- знання
- відомий
- етикетка
- великий
- масштабний
- останній
- лідер
- вчений
- вивчення
- менше
- libraries
- бібліотека
- світло
- МЕЖА
- Перераховані
- загрузка
- від
- машина
- навчання за допомогою машини
- Macro
- made
- головний
- Робить
- людина
- менеджер
- Матерія
- Може..
- заходи
- середа
- пам'ять
- метод
- Метрика
- Microsoft
- відсутній
- Місія
- режим
- модель
- Моделі
- більше
- найбільш
- багато
- множинний
- взаємно
- необхідно
- Необхідність
- Нові
- наступний
- роман
- зараз
- номер
- нумпі
- мета
- спостерігається
- of
- on
- оптимальний
- or
- оригінал
- OS
- Інше
- інші
- Вищі результати
- пакет
- панди
- параметр
- частина
- проходити
- продуктивність
- виступає
- людина
- plato
- Інформація про дані Платона
- PlatoData
- популярний
- пошта
- Точність
- прогноз
- Прогнози
- підготовлений
- запобігати
- попередній
- Проблема
- проблеми
- процес
- виробляти
- Product
- забезпечення
- Python
- випадковий
- Ранжування
- RE
- зменшити
- зниження
- замінювати
- s
- масштабовані
- НАУКИ
- scikit-вчитися
- морський народжений
- другий
- комплект
- набори
- секс
- загальні
- вона
- Повинен
- показаний
- значний
- одночасно
- з
- невеликий
- деякі
- Простір
- Гучномовець
- конкретний
- конкретно
- розкол
- стенди
- старт
- почалася
- статистичний
- Крок
- Стратег
- тема
- такі
- поставляється
- підтримка
- виживання
- Вижили
- Systems
- Мета
- завдання
- методи
- термінал
- тест
- Тестування
- ніж
- Що
- Команда
- інформація
- їх
- Їх
- потім
- Там.
- тим самим
- Ці
- вони
- третій
- це
- Таким чином
- трудомісткий
- до
- Інструментарій
- поїзд
- навчений
- Навчання
- поїзда
- Перетворення
- дерево
- суд
- метод спроб і помилок
- два
- тип
- Типи
- розуміння
- us
- Використання
- використання
- користувачі
- використовує
- використання
- використовувати
- значення
- Цінності
- різний
- величезний
- через
- we
- ДОБРЕ
- коли
- Чи
- який
- в той час як
- ВООЗ
- волі
- з
- без
- жінка
- робочий
- X
- ви
- вашу
- зефірнет