Что означает ссылочный параметр набора данных Python Lightgbm? - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь понять, как обучить классификатор gbdt с помощью lightgbm в python, но путаюсь с примером, приведенным на официальном сайте . Следуя перечисленным шагам, я обнаружил, что validation_data происходит из ниоткуда, и нет никакого понятия ни о формате valid_data, ни о достоинствах или полезности модели обучения с ней или без нее. validation data creation step Другой вопрос, который возникает в связи с этим, заключается в том, что в документации сказано, что «данные проверки должны быть сопоставлены с данными обучения», а когда я изучаю детали набора данных, я обнаружил, что есть другое утверждение, показывающее, что «если это набор данных» для подтверждения, данные обучения должны использоваться в качестве справочных ". Мой последний вопрос: почему данные валидации должны быть согласованы с данными обучения? что означает ссылка в наборе данных и как она используется во время обучения? достигается ли цель выравнивания с помощью набора данных для обучения? В чем разница между этой «эталонной» стратегией и перекрестной проверкой? Надеюсь, кто-нибудь может помочь мне выбраться из этого лабиринта, спасибо!

1 Ответ

0 голосов
/ 28 июня 2019

Идея «данные валидации должны быть согласованы с данными обучения» проста: при каждой предварительной обработке, которую вы выполняете с данными обучения, вы должны делать это одинаково для данных проверки и, конечно же, при производстве.Это применимо к каждому алгоритму ML.

Например, для нейронной сети вы часто нормализуете свои тренировочные данные (вычтите среднее и разделите на стандартное).Предположим, у вас есть переменный «возраст» со средним возрастом 26 лет.Он будет отображен на «0» для обучения вашей нейронной сети.Для данных проверки вы хотите нормализовать так же, как данные обучения (используя среднее значение обучения и стандарт обучения), чтобы 26 лет в проверке все еще отображались в 0 (то же значение -> то же самое предсказание).

Это то же самое для LightGBM.Данные будут « сгруппированы » (короче говоря, каждое непрерывное значение будет дискретизировано), и вы хотите отобразить непрерывные значения в одни и те же ячейки при обучении и проверке.Эти ячейки будут рассчитываться с использованием «эталонного» набора данных.

Что касается обучения без проверки, то это то, что вы не хотите делать большую часть времени!Очень легко наложить тренировочные данные на увеличенные деревья, если у вас нет проверки для настройки таких параметров, как «num_boost_round».

...