Это то, что делает ваши обученные модели действительно пригодными для использования.

Переоснащение — бич любого специалиста по данным.

Нет ничего более разочаровывающего, чем скрупулёзное построение модели, которая высоко оценивается на обучающих данных только для того, чтобы она давала некачественные характеристики при использовании на тестовых данных.

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

Здесь мы углубимся в то, что делает регуляризация и как ее можно использовать для обучения моделей работе на высоком уровне.

Проблема переобучения

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

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

Сначала это может показаться странным. Что означает, что модель «слишком многому учится» на обучающих данных?

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

Однако минимизация потерь сама по себе не обязательно соответствует лучшей производительности модели.

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

Модель, обученная с таким расположением, не может обобщать и не сможет адекватно работать с невидимыми данными, что и является основной целью модели.

Регуляризация

Итак, как регуляризация помогает избежать отвратительной проблемы переобучения?

Проще говоря, он добавляет «штраф» к функции потерь.

Регуляризация гарантирует, что функция потерь не только учитывает разницу между прогнозируемыми и фактическими значениями, но также учитывает, какое значение придается функциям.

С помощью этого метода пользователи могут ограничивать сложность модели и обучать модели, которые могут делать точные прогнозы с невидимыми данными.

Конечно, есть несколько способов наказать модель за излишнюю сложность.

Двумя основными методами регуляризации являются регуляризация Лассо (также известная как регуляризация L1) и регуляризация Риджа (также известная как регуляризация L2).

В целом, регуляризация Лассо наказывает модели на основе величины коэффициентов их признаков, в то время как регуляризация Риджа наказывает модели на основе квадрата значения коэффициентов их признаков.

Внедрение регуляризации

Теперь, когда мы изучили преимущества регуляризации, как мы можем использовать эту технику в наших моделях машинного обучения?

Ну, многие алгоритмы в пакетах машинного обучения Python уже реализуют регуляризацию по умолчанию. Например, линейные классификаторы в модуле Scikit-learn используют регуляризацию L2, если пользователь явно не назначает метод регуляризации.

Итак, поскольку регуляризация уже встроена в алгоритмы машинного обучения, правильно ли пользователи используют эту технику?

Короткий ответ: наверное, нет.

Это связано с тем, что значения по умолчанию, присвоенные параметрам модели, редко бывают оптимальными.

В конце концов, разные задачи машинного обучения различаются по типу и силе регуляризации, необходимой для обеспечения хорошей работы обученной модели на невидимых данных.

Возникает вопрос: как определить наилучший тип регуляризации для использования при обучении модели с интересующими данными?

Тематическое исследование

Чтобы продемонстрировать, как пользователи могут определить и реализовать наиболее эффективный подход к регуляризации, мы можем создать линейный классификатор, используя игрушечный набор данных из модуля Scikit-learn.

Сначала мы подготавливаем данные, создавая обучающие и тестовые наборы.

Большинство линейных классификаторов в модуле Scikit-learn позволяют пользователям изменять технику регуляризации с помощью параметров penalty и C.

Параметр penalty относится к методу регуляризации, включенному в алгоритм.

Параметр C определяет силу регуляризации, используемую классификатором. Значение, присвоенное этому параметру, обратно пропорционально силе регуляризации. Другими словами, чем больше значение C, тем слабее регуляризация.

Для этого примера мы построим модель с классом LinearSVC.

По умолчанию модель присваивает параметрам penalty и C значения «l2» и 1 соответственно. Давайте посмотрим, насколько хорошо базовая модель работает по сравнению с тестовым набором с этими настройками на основе метрики f1-score.

Базовая модель дает оценку f-1 около 0,9012 по сравнению с тестовой выборкой. Использование регуляризации сыграло важную роль в обеспечении хорошей работы модели по данным тестирования.

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

Таким образом, было бы полезно настроить модель, рассмотрев другие комбинации значений параметров penalty и C и определив те из них, которые обеспечивают наилучшую производительность. Этого можно добиться, выполнив процедуру настройки гиперпараметров.

На этот случай модуль Scikit-learn предлагает класс GridSearchCV, который позволяет пользователям тестировать различные комбинации гиперпараметров. Одной из лучших особенностей инструмента является его встроенная стратегия разделения перекрестной проверки, которая еще больше снижает вероятность переобучения.

Давайте используем GridSearchCV, чтобы определить лучшие гиперпараметры для модели.

Оптимизированная модель по-прежнему использует регуляризацию L2. Однако он также присваивает параметру C значение 0,0001. Это означает, что производительность модели улучшается при использовании регуляризации более высокой силы, чем у базовой модели.

Давайте посмотрим, как модель с этими параметрами работает на тестовом наборе.

Оптимизированная модель дает оценку f-1 0,9727 по сравнению с набором данных, что является значительным улучшением по сравнению с базовой моделью.

Ключевые выводы

Регуляризация помогает бороться с переоснащением, ограничивая сложность модели.

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

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

Желаю вам удачи в ваших начинаниях в области науки о данных!