Изображение от редактора
Существует огромное количество алгоритмов машинного обучения, способных моделировать конкретные явления. В то время как некоторые модели используют набор атрибутов, чтобы превзойти другие, другие включают слабых учеников, чтобы использовать оставшиеся атрибуты для предоставления дополнительной информации модели, известной как ансамблевые модели.
Предпосылка моделей ансамбля состоит в том, чтобы улучшить производительность модели за счет объединения прогнозов из разных моделей за счет уменьшения их ошибок. Есть два популярных метода сборки: бэггинг и буст.
Пакетирование, также известное как агрегация с начальной загрузкой, обучает несколько отдельных моделей на разных случайных подмножествах обучающих данных, а затем усредняет их прогнозы для получения окончательного прогноза. Повышение, с другой стороны, включает в себя последовательное обучение отдельных моделей, где каждая модель пытается исправить ошибки, допущенные предыдущими моделями.
Теперь, когда у нас есть контекст о моделях ансамбля, давайте дважды щелкнем модель ансамбля усиления, в частности алгоритм 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
Подготовка набора данных
Мы используем популярный набор данных «Титаника», который содержит информацию о пассажирах «Титаника», а целевая переменная указывает, выжили они или нет. Вы можете скачать набор данных с Kaggle или используйте следующий код, чтобы загрузить его непосредственно из Seaborn, как показано ниже:
titanic = sns.load_dataset('titanic')
Отбросьте ненужные столбцы, такие как «deck», «embark_town» и «alive», потому что они избыточны или не способствуют выживанию любого человека на корабле. Далее мы заметили, что признаки «возраст», «плата за проезд» и «посадка» имеют пропущенные значения — обратите внимание, что различные атрибуты вменяются с соответствующими статистическими показателями.
# 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])
Наконец, мы преобразуем категориальные переменные в числовые переменные, используя категориальные коды pandas. Теперь данные подготовлены для начала процесса обучения модели.
# 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
Чтобы начать обучение модели 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: это основной параметр для управления сложностью модели дерева. В идеале значение num_leaves должно быть меньше или равно 2^(max_depth).
- min_data_in_leaf: это важный параметр для предотвращения переобучения в полистном дереве. Его оптимальное значение зависит от количества обучающих выборок и num_leaves.
- Максимальная глубина: Вы можете использовать это, чтобы явно ограничить глубину дерева. Лучше всего настраивать этот параметр в случае переобучения.
Давайте настроим эти гиперпараметры и обучим новую модель:
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. Это гибкий метод, который полезен для различных типов задач классификации и должен быть частью вашего набора инструментов для машинного обучения.
Видхи Чаг — специалист по стратегии искусственного интеллекта и лидер цифровой трансформации, работающий на стыке продуктов, науки и техники для создания масштабируемых систем машинного обучения. Она является отмеченным наградами лидером инноваций, автором и международным спикером. Она поставила перед собой задачу демократизировать машинное обучение и сломать жаргон, чтобы каждый мог принять участие в этой трансформации.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: 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
- нести
- случаев
- ребенок
- Выберите
- класс
- классификация
- CLF
- код
- Коды
- Колонки
- комбинируя
- сложность
- постоянная
- потреблять
- содержит
- контекст
- способствовать
- контроль
- конвертировать
- исправить
- Создающий
- данным
- Наборы данных
- занимавшийся
- решение
- Древо решений
- более глубокий
- демократизировать
- зависит
- глубина
- развитый
- различный
- Интернет
- цифровое преобразование
- размеры
- непосредственно
- обсуждать
- do
- не
- домен
- скачать
- Падение
- в течение
- каждый
- фактически
- или
- Проект и
- обеспечивать
- равный
- ошибка
- ошибки
- оценивать
- все члены
- Эксклюзивные
- опыт
- опыта
- быстрее
- Особенность
- Особенности
- окончательный
- Во-первых,
- соответствовать
- примерка
- Трансформируемость
- гибкого
- после
- Что касается
- от
- функция
- получающий
- градиенты
- инструкция
- рука
- обрабатывать
- Сильнее
- Есть
- здесь
- HTML
- HTTPS
- Идеально
- реализация
- Импортировать
- важную
- улучшать
- in
- включают
- individual
- информация
- инициировать
- Инновации
- вход
- устанавливать
- установка
- пример
- Мультиязычность
- пересечение
- в
- Представляет
- интуиция
- IT
- ЕГО
- жаргон
- КДнаггетс
- Основные
- знания
- известный
- этикетка
- большой
- крупномасштабный
- Фамилия
- лидер
- узнали
- изучение
- Меньше
- библиотеки
- Библиотека
- легкий
- ОГРАНИЧЕНИЯ
- Включенный в список
- загрузка
- от
- машина
- обучение с помощью машины
- Макрос
- сделанный
- Главная
- Создание
- человек
- менеджер
- Вопрос
- Май..
- меры
- средний
- Память
- метод
- Метрика
- Microsoft
- отсутствующий
- Наша миссия
- режим
- модель
- Модели
- БОЛЕЕ
- самых
- много
- с разными
- взаимно
- необходимо
- Необходимость
- Новые
- следующий
- роман
- сейчас
- номер
- NumPy
- цель
- наблюдается
- of
- on
- оптимальный
- or
- оригинал
- OS
- Другое
- Другое
- опережать
- пакет
- панд
- параметр
- часть
- pass
- производительность
- выполняет
- человек
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Популярное
- После
- Точность
- прогноз
- Predictions
- (например,
- предотвращать
- предыдущий
- Проблема
- проблемам
- процесс
- производит
- Продукт
- обеспечение
- Питон
- случайный
- Ранжирование
- RE
- уменьшить
- снижение
- замещать
- s
- масштабируемые
- НАУКА
- scikit учиться
- рожденное море
- Во-вторых
- набор
- Наборы
- Секс
- общие
- она
- должен
- показанный
- значительный
- одновременно
- с
- небольшой
- некоторые
- Space
- Динамик
- конкретный
- конкретно
- раскол
- стоит
- Начало
- и политические лидеры
- статистический
- Шаг
- Стратег
- предмет
- такие
- поставляется
- поддержка
- выживание
- переживший
- системы
- цель
- задачи
- снижения вреда
- Терминал
- тестXNUMX
- Тестирование
- чем
- который
- Ассоциация
- информация
- их
- Их
- тогда
- Там.
- тем самым
- Эти
- они
- В третьих
- этой
- Таким образом
- кропотливый
- в
- Инструментарий
- Train
- специалистов
- Обучение
- поезда
- трансформация
- дерево
- суд
- методом проб и ошибок
- два
- напишите
- Типы
- понимание
- us
- Применение
- использование
- пользователей
- использования
- через
- использовать
- ценностное
- Наши ценности
- различный
- Огромная
- с помощью
- we
- ЧТО Ж
- когда
- будь то
- , которые
- в то время как
- КТО
- будете
- без
- женщина
- работает
- X
- являетесь
- ВАШЕ
- зефирнет