Перекрестная проверка в LightGBM
Прочитав документацию LightGBM по перекрестной проверке, я надеюсь, что это сообщество сможет пролить свет на перекрестные проверки результатов и улучшить наши прогнозы с помощью LightGBM. Как мы должны использовать вывод словаря из lightgbm.cv
улучшить наши прогнозы?
Вот пример - мы обучаем нашу модель cv, используя код ниже:
cv_mod = lgb.cv(params,
d_train,
500,
nfold = 10,
early_stopping_rounds = 25,
stratified = True)
Как мы можем использовать параметры, найденные из лучшей итерации приведенного выше кода, чтобы предсказать вывод? В этом случае, cv_mod
не имеет метода "предсказать", как lightgbm.train
и вывод словаря из lightgbm.cv
выдает ошибку при использовании в lightgbm.train.predict(..., pred_parameters = cv_mod)
,
Я пропустил важный шаг трансформации?
3 ответа
В общем, цель CV в том, чтобы НЕ делать гиперпараметрическую оптимизацию. Целью является оценка эффективности процедуры построения модели.
Базовое разделение поезда / теста концептуально идентично 1-кратному резюме (с индивидуальным размером разделения в отличие от размера поезда 1/K в k-кратном резюме). Преимущество выполнения большего количества разбиений (т.е. k>1 CV) состоит в том, чтобы получить больше информации об оценке ошибки обобщения. Существует больше информации в смысле получения ошибки + статистическая неопределенность. Существует отличная дискуссия о CrossValidated (начните со ссылок, добавленных к вопросу, которые охватывают тот же вопрос, но сформулированы по-другому). Он охватывает вложенную перекрестную проверку и абсолютно не прост. Но если вы обернетесь вокруг концепции в целом, это поможет вам в различных нетривиальных ситуациях. Идея, которую вы должны убрать: Цель CV - оценить эффективность процедуры построения модели.
Помня об этой идее, как можно приблизиться к оценке гиперпараметров в целом (не только в LightGBM)?
- Вы хотите обучить модель с набором параметров для некоторых данных и оценить каждую вариацию модели на независимом (проверочном) наборе. Затем вы намереваетесь выбрать лучшие параметры, выбрав вариант, который дает лучшую метрику оценки по вашему выбору.
- Это можно сделать простым разделением поезда / теста. Но оцениваемая производительность и, следовательно, выбор оптимальных параметров модели могут быть просто колебанием определенного разделения.
- Таким образом, вы можете оценить каждую из этих моделей более статистически надежной усредненной оценкой по нескольким разделениям поезда / теста, то есть CV-кратным CV.
Затем вы можете сделать еще один шаг и сказать, что у вас есть дополнительный набор удержания, который был отделен до начала оптимизации гиперпараметра. Таким образом, вы можете оценить выбранную лучшую модель на этом наборе, чтобы измерить окончательную ошибку обобщения. Тем не менее, вы можете сделать еще один шаг вперед, и вместо одного тестового образца у вас может быть внешний цикл CV, что приводит нас к вложенной перекрестной проверке.
Технически, lightbgm.cv()
позволяет оценивать производительность только при k-кратном разделении с фиксированными параметрами модели. Для настройки гиперпараметров вам нужно будет запустить его в цикле, предоставляя различные параметры и записывая усредненную производительность для выбора наилучшего набора параметров. после завершения цикла Этот интерфейс отличается от sklearn
, который предоставляет вам полную функциональность для оптимизации гиперпараметров в цикле CV. Лично я бы порекомендовал использовать sklearn-API lightgbm. Это просто обёртка вокруг родного lightgbm.train()
функциональность, при этом она не медленнее. Но это позволяет вам использовать полный стек sklearn
инструментарий, который делает вашу жизнь намного проще.
Если вы довольны результатами своего резюме, просто используйте эти параметры для вызова метода lightgbm.train. Как сказал @pho, резюме обычно просто для настройки параметров. Вы не используете фактический объект CV для прогнозов.
Вы должны использовать CV для оптимизации параметров.
Если ваша модель работает хорошо на всех сгибах, используйте эти параметры для тренировки на всем тренировочном наборе. Затем оцените эту модель на внешнем тестовом наборе.