Как использовать light gbm cv приводит к функции light gbm train - PullRequest
0 голосов
/ 18 февраля 2020

Я все еще новичок в машинном обучении. я пытаюсь обучить мою модель с использованием 5-кратного CV из lgb.cv (), но я не уверен, как использовать результаты в lgb.train (). то есть, как я могу использовать 'результаты cv' в моем 'lgb_clf'? Я не могу понять разницу между cv () и train ()

lgbm_params = {
    'objective': 'binary',
    'metric': 'auc',
    'is_unbalance': 'true',
    'boosting': 'gbdt',
    'num_leaves': 31,
    'feature_fraction': 0.5,
    'bagging_fraction': 0.5,
    'bagging_freq': 20,
    'learning_rate': 0.05,
    'verbose': 0
}


metric = 'auc'
cv_folds = 5
num_rounds = 5000


lgtrain = lgb.Dataset(train, label=label)

lgvalid = lgb.Dataset(test,label=label)

cv = lgb.cv(lgbm_params, lgtrain, num_rounds, nfold=cv_folds, metrics={metric}, early_stopping_rounds=100)


lgb_clf = lgb.train(lgbm_params, lgtrain,num_rounds, early_stopping_rounds=100, valid_sets=[lgtrain,lgvalid])

1 Ответ

0 голосов
/ 07 марта 2020

Вопрос в том, для чего вы хотите использовать перекрестную проверку. Если вы оцениваете ошибку обобщения для предопределенного набора гиперпараметров, вы можете получить вывод lgb.cv напрямую, и нет необходимости снова обучать модель. Если, с другой стороны, вы ищете оптимальные значения гиперпараметров, вы хотите исследовать несколько точек в этом пространстве, вычислить оценку перекрестной проверки для каждой и выбрать точку с наилучшей оценкой. Затем вы переобучите модель, используя найденные таким образом гиперпараметры.

...