Содержание
- Русские Блоги
- Два, настройка XGBoost
- Три, объяснение параметра LightGBM
- Четыре, настройка LightGBM
- Пятерка, ядро настройки
- Импетиго (вызванное любым организмом) (любой локализации)
- Dreame L10 Pro против Roborock
- Необычный Пылесос с подогревом УФ лампой и взбиванием! Genio Mite L10 Как он в деле?
- Как разобрать bsm l01-00
- Dreame Bot L10 Pro: МОЩНЕЙШИЙ робот-пылесос с активной камерой и лидаром ОБЗОР и ТЕСТ✅

мы все знаем,XGBoost Есть три типа параметровОбщие параметры, целевые параметры обучения, параметры Booster, Затем для LightGBM у нас есть основные параметры, параметры управления обучением, параметры ввода-вывода, целевые параметры, параметры измерения, параметры сети, параметры графического процессора и параметры модели. Здесь я часто изменяюОсновные параметры, параметры управления обучением, параметры измеренияПодождите. Подробнее см.Китайский документ LightGBM
Русские Блоги
Вообще говоря, мы будем использовать xgboost.train(params, dtrain) Функция для обучения нашей модели. Вот params Относится booster параметр.
Два, настройка XGBoost
import xgboost as xgb import pandas as pd from sklearn.model_selection import train_test_split from sklearn.metrics import roc_auc_score train_data = pd.read_csv ('train.csv') # чтение данных y = train_data.pop ('30 '). values # Используйте метод pop, чтобы извлечь значение y метки y в данных обучения в качестве цели обучения, где «30» - это имя столбца метки col = train_data.columns x = train_data [col] .values # Остальные столбцы используются в качестве данных обучения train_x, valid_x, train_y, valid_y = train_test_split (x, y, test_size = 0.333, random_state = 0) # Отдельный обучающий набор и проверочный набор # Здесь нет необходимости в Dmatrix parameters = < 'max_depth': [5, 10, 15, 20, 25], 'learning_rate': [0.01, 0.02, 0.05, 0.1, 0.15], 'n_estimators': [500, 1000, 2000, 3000, 5000], 'min_child_weight': [0, 2, 5, 10, 20], 'max_delta_step': [0, 0.2, 0.6, 1, 2], 'subsample': [0.6, 0.7, 0.8, 0.85, 0.95], 'colsample_bytree': [0.5, 0.6, 0.7, 0.8, 0.9], 'reg_alpha': [0, 0.25, 0.5, 0.75, 1], 'reg_lambda': [0.2, 0.4, 0.6, 0.8, 1], 'scale_pos_weight': [0.2, 0.4, 0.6, 0.8, 1] >xlf = xgb.XGBClassifier(max_depth=10, learning_rate=0.01, n_estimators=2000, silent=True, objective='binary:logistic', nthread=-1, gamma=0, min_child_weight=1, max_delta_step=0, subsample=0.85, colsample_bytree=0.7, colsample_bylevel=1, reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=1440, missing=None) # С gridsearch нам не нужна функция соответствия gsearch = GridSearchCV(xlf, param_grid=parameters, scoring='accuracy', cv=3) gsearch.fit(train_x, train_y) print("Best score: %0.3f" % gsearch.best_score_) print("Best parameters set:") best_parameters = gsearch.best_estimator_.get_params() for param_name in sorted(parameters.keys()): print("\t%s: %r" % (param_name, best_parameters[param_name]))
Три, объяснение параметра LightGBM
мы все знаем,XGBoost Есть три типа параметровОбщие параметры, целевые параметры обучения, параметры Booster, Затем для LightGBM у нас есть основные параметры, параметры управления обучением, параметры ввода-вывода, целевые параметры, параметры измерения, параметры сети, параметры графического процессора и параметры модели. Здесь я часто изменяюОсновные параметры, параметры управления обучением, параметры измеренияПодождите. Подробнее см.Китайский документ LightGBM
1. Основные параметры
- boosting : Также называемый boost , boosting_type . По умолчанию gbdt 。 Параметры бустинга в LGB намного больше, чем xgb, у нас традиционные gbdt , Есть rf , dart , doss , Последние два не совсем понятны, но после попытки эффект gbdt более классический и стабильный
- gbdt , Традиционное дерево решений повышения градиента
- rf , Случайный лес (случайный лес)
- dart , Dropouts meet Multiple Additive Regression Trees
- goss , Односторонняя выборка на основе градиента (Односторонняя выборка на основе градиента)
- num_thread : Также известен как num_thread , nthread .Укажите количество потоков. В официальном документе здесь упоминается, что число установлено на количество ядер процессора, которое должно быть быстрее, чем количество потоков для обучения (учитывая, что большинство процессоров теперь являются гиперпоточными). Не следует устанавливать параллельное обучение для всех потоков, что снижает скорость обучения.
- application : По умолчанию regression . , Также называемый objective , app Это относится к цели миссии
- regression
- regression_l2 , L2 loss, alias=regression, mean_squared_error, mse
- regression_l1 , L1 loss, alias=mean_absolute_error, mae
- huber , Huber loss
- fair , Fair loss
- poisson , Poisson regression
- quantile , Quantile regression
- quantile_l2 , Аналогично квантилю, но с использованием потерь L2
- binary, binary log loss classification application
- multi-class classification
- multiclass , целевая функция softmax, должна быть установлена num_class
- multiclassova , Следует задать двухкатегориальную целевую функцию «один против всех». num_class
- cross-entropy application
- xentropy , Целевая функция — кросс-энтропия (с необязательными линейными весами), alias = cross_entropy
- xentlambda , Вместо параметризованной кросс-энтропии alias = cross_entropy_lambda
- Метка — любое значение в интервале [0, 1].
- lambdarank, lambdarank application
- В задаче лямбдарана метка должна иметь тип int, чем больше значение, тем выше корреляция (например, 0: плохо, 1: удовлетворительно, 2: хорошо, 3: идеально).
- label_gain Может использоваться для установки усиления (веса) тега int
- regression
- valid : Выбор набора проверки, также называемый test , valid_data , test_data .Поддержка нескольких наборов проверки для , сегментация
- learning_rate : Также называемый shrinkage_rate , Размер шага градиентного спуска. Значение по умолчанию — 0,1, обычно мы устанавливаем его на 0.05-0.2 между
- num_leaves : Также называемый num_leaf , В новой версии lgb это значение по умолчанию изменено на 31, что представляет количество листьев на дереве.
- num_iterations : Также называемый num_iteration , num_tree , num_trees, num_round , num_rounds , num_boost_round . Количество итераций
- device :default=cpu, options=cpu, gpu
- Выберите устройство для древовидного обучения, вы можете использовать графический процессор, чтобы ускорить обучение
- Note: Рекомендуется использовать меньший max_bin (например, 63) для большей скорости
- Note: Для увеличения скорости обучения графический процессор по умолчанию использует для суммирования 32-битные числа с плавающей запятой. Вы можете установить gpu_use_dp = true, чтобы включить 64-битные числа с плавающей запятой, но это замедлит скорость обучения.
- Note: Пожалуйста, обратитесь к руководству по установке, чтобы собрать версию GPU.
2. Параметры управления обучением
- max_depth
- default= -1 , type = int ограничивает максимальную глубину модели дерева. Это может быть #data Избегайте переобучения в небольших случаях. Деревья все еще могут расти листовыми.