Математика, лежащая в основе регуляризации хребта и регуляризации лассо

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

«Ты то, что делаешь». "Ты то, что ты ешь." Это две из нескольких идиом, в которые я искренне верю. Как новоиспеченный специалист по данным, я верю в следующую фразу: «мусор на входе, мусор на выходе». Если входные данные вашей модели некачественные, выход вашей модели будет плохим.

Выбор функций и разработка функций - исключительно важные аспекты процесса анализа данных; очень важно быть осознанным при выборе (или создании) функций для модели машинного обучения.

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

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

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

Две формы регуляризации - это Ридж и Лассо.

Регуляризация Риджа, также называемая штрафом L2, возводит в квадрат ваши коэффициенты. Регуляризация лассо или штраф L1 будет принимать абсолютное значение ваших коэффициентов. Штраф L1 может служить встроенным выбором функций (подробнее об этом ниже).

ПРЕДУПРЕЖДЕНИЕ. Прежде чем использовать какой-либо метод регуляризации, вы должны стандартизировать все свои данные (даже функции, которые не используются). Регуляризация снижает величину коэффициентов, поэтому все переменные-предикторы должны быть в одной шкале. Быстрый способ масштабировать ваши данные - использовать библиотеку предварительной обработки Scikit-learn.

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

Давайте рассмотрим пример ...

Используя контролируемое обучение, вы проводите линейную регрессию и выбираете остаточную сумму квадратов (RSS) в качестве функции потерь.

RSS с регуляризацией Ridge выглядит так:

Ридж возводит в квадрат коэффициент (𝛽j ^ 2). Альфа (𝛼) масштабирует функцию, определяя влияние, которое будет иметь регуляризация. Если вы используете Scikit-learn, альфа обычно устанавливается между 0 и 1 (это гиперпараметр, на который нужно настроить оптимальный срок штрафа). Если альфа равна 0, это приведет к тому, что штраф за регуляризацию будет нулевым, что означает, что вы выполняете регрессию без регуляризации.

RSS с регуляризацией лассо выглядит так:

Обратите внимание, что эта формула соответствует приведенной выше, но теперь штрафной член представляет собой сумму абсолютных значений коэффициентов (| 𝛽j |). Если ваша модель страдает от высокой дисперсии, регуляризация Лассо может быть более полезной, чем регуляризация Риджа, потому что первая фактически сведет коэффициенты к нулю. Это делает Lasso встроенным селектором функций.

Хотите узнать больше о разработке функций и выборе функций? Если да, то подпишитесь на мой профиль и следите за обновлениями!