1. Как импортировать библиотеки LightGBM?

2. Как загрузить набор данных?

4. Как разделить набор данных на обучающий и тестовый?

5. Как задать параметры для модели LightGBM?

6. Как гипернастроить параметры?

7. Как обучить модель lightGBM?

8. Как использовать «RandomSerachCV», чтобы найти лучшие параметры?

9. Как найти лучшие параметры?

10. Как создать модель LightGBM с гипернастроенными параметрами?

Параметры гипернастройки

Гипернастройка означает настройку параметров модели для получения лучших прогнозов и точности. Чтобы получить хорошие результаты в модели LightGBM, необходимо настроить следующие параметры.

1. «num_leaves»: этот параметр управляет сложностью модели. Слишком высокое значение приводит к переоснащению.

2. «min_data_in_leaf»: для управления переобучением в дереве.

3. «max_depth»: для управления глубиной дерева.

Параметры точности

1. «max_bin»: этот параметр должен быть большим.

2. «learning_rate»: этот параметр должен быть небольшим.

3. «num_leaves»: параметр To должен быть большим.

Параметры, чтобы избежать чрезмерной подгонки

1. «max_bin»: этот параметр должен быть небольшим.

2. «лямбда_l1»: этот параметр должен быть небольшим.

3. «lambda_l2»: параметр To должен быть небольшим.

4. «extra_trees»: следует использовать этот параметр.

1. Импортируйте библиотеки

Первый шаг — импорт всех необходимых библиотек.

import lightgbm as lgb
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
import seaborn as sns
from sklearn import metrics
from sklearn.datasets import load_breast_cancer
from scipy.stats import randint as sp_randint
from scipy.stats import uniform as sp_uniform
from sklearn.model_selection import RandomizedSearchCV, GridSearchCV
from scipy.stats import uniform as sp_uniform

2. Загрузите набор данных

Мы собираемся загрузить набор данных рака молочной железы из наборов данных Scikti-Learn.

X, y = load_breast_cancer(return_X_y=True)

3. Разделить данные

Как только данные нормализованы, нам нужно разделить данные на набор данных для обучения и тестирования.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

4. Установите параметры для модели LightGBM

Параметры могут быть установлены для модели LightGBM. Указываем следующие параметры

1. early_stopping_rounds: во избежание переобучения.

2. «eval_metric»: чтобы указать показатель оценки.

3. «eval_set»: установить набор данных проверки.

4 "verbose": для печати данных во время обучения модели.

5. "categorical_feature": чтобы указать категориальные столбцы в наборе данных.

parameters={"early_stopping_rounds":20,
"eval_metric" : 'auc',
"eval_set" : [(X_test,y_test)],
'eval_names': ['valid'],
'verbose': 100,
'categorical_feature': 'auto'}

5. Создайте параметры для настройки

Мы указываем параметры, которые мы хотим настроить. Указание диапазона в параметрах даст нам наилучшие значения.

parameter_tuning ={
'max_depth': sp_randint(10,50),
'num_leaves': sp_randint(6, 50),
'learning_rate ': [0.1,0.01,0.001],
'min_child_samples': sp_randint(100, 500),
'min_child_weight': [1e-5, 1e-3, 1e-2, 1e-1, 1, 1e1, 1e2, 1e3, 1e4],
'subsample': sp_uniform(loc=0.2, scale=0.8),
'colsample_bytree': sp_uniform(loc=0.4, scale=0.6),
'reg_alpha': [0, 1e-1, 1, 2, 5, 7, 10, 50, 100],
'reg_lambda': [0, 1e-1, 1, 5, 10, 20, 50, 100]}

6. Обучение модели

Мы создаем экземпляр модели LightGBM Classifier. Мы собираемся использовать метод «RandomSearchCV» для обучения модели параметрам настройки. Этот метод даст результат из лучшей созданной модели.

classifier = lgb.LGBMClassifier(random_state=300, silent=True, metric='None', n_jobs=4, n_estimators=5000)
find_parameters = RandomizedSearchCV(
estimator=classifier, param_distributions=parameter_tuning,
n_iter=100,
scoring='roc_auc',
cv=5,
refit=True,
random_state=300,
verbose=False)

7. Подходящие параметры

find_parameters.fit(X_train, y_train, **parameters)
print('Best score : {} with parameters: {} '.format(find_parameters.best_score_, find_parameters.best_params_))

8. Лучшие параметры

best_parameters = find_parameters.best_params_
best_parameters

9. Модель LightGBM с настроенными параметрами

best_parameters_model = lgb.LGBMClassifier(**best_parameters)
best_parameters_model.set_params(**best_parameters)

Резюме

1. «num_leaves»: этот параметр управляет сложностью модели. Слишком высокое значение приводит к переоснащению.

2. «min_data_in_leaf»: для управления переобучением в дереве.

3. «max_depth»: для управления глубиной дерева.

4. «learning_rate»: указать скорость обучения.

5. «num_leaves»: указать количество листьев в дереве.

6. early_stopping_rounds: во избежание переобучения.

7. «eval_metric»: для указания метрики оценки.

8. «eval_set»: установить набор данных проверки.

9. "verbose": для печати данных во время обучения модели.

10. "categorical_feature": для указания категориальных столбцов в наборе данных.

11. RandomSearchCV(): для поиска лучших параметров.

Другие уроки: https://www.python-machinelearning.com/

Первоначально опубликовано на https://www.python-machinelearning.com 28 июля 2020 г.