Одной из основных проблем машинного обучения, с которой можно столкнуться, является переоснащение. Переобучение — это ситуация, когда наша модель пытается втиснуть данные, а не понять их. С технической точки зрения наша модель соответствует шуму данных, а не шаблону. Переоснащение обычно происходит, когда признаков слишком много. Переобученная модель хорошо работает на обучающих данных, но плохо работает на тестовых данных.

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

Одним из самых известных методов, используемых для устранения переобучения, является Регуляризация. При регуляризации мы сохраняем все признаки, но уменьшаем их величину. Это существенно уменьшит шум, и наша модель хорошо подходит как для обучения, так и для тестирования. Регуляризация хорошо работает, когда у нас много функций, каждая из которых вносит свой вклад в прогнозирование вывода. Таким образом, после добавления дополнительного параметра, также называемого параметром регаулризации, наша модель меняется. Линейная регрессия теперь будет называться регуляризованной линейной регрессией, логистическая регрессия будет называться регуляризованной логистической регрессией и т. д. Когда мы используем библиотеку Python — sklearn для реализации любого из них, используются расширенные методы оптимизации, такие как lbfgs, где регуляризация применяется по умолчанию.

Надеюсь, вы немного поняли о переоснащении и борьбе с ним.

Спасибо за прочтение.