Подробный обзор 7 популярных методов усадки и выбора.

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

Эта статья основана на главе из прекрасного Хасти Т., Тибширани Р. и Фридмана Дж. Х. (2009). Элементы статистического обучения: интеллектуальный анализ данных, вывод и прогнозирование. 2-е изд. Нью-Йорк: Спрингер. Некоторые технические детали могут быть перефразированы или процитированы напрямую.

Зачем сжимать или подмножество и что это значит?

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

Усадка и отбор направлены на улучшение простой линейной регрессии. Есть две основные причины, по которым это может нуждаться в улучшении:

  • Точность прогноза: оценки линейной регрессии, как правило, имеют низкую систематическую ошибку и большую дисперсию. Снижение сложности модели (количества параметров, которые необходимо оценить) приводит к уменьшению дисперсии за счет увеличения смещения. Если бы мы смогли найти золотую середину, где общая ошибка, то есть ошибка, возникающая из-за смещения плюс ошибка из-за дисперсии, была минимизирована, мы могли бы улучшить прогнозы модели.
  • Интерпретируемость модели. При слишком большом количестве предикторов человеку трудно уловить все отношения между переменными. В некоторых случаях мы были бы готовы определить небольшое подмножество переменных, оказывающих наибольшее влияние, таким образом жертвуя некоторыми деталями, чтобы получить общую картину.

Настройка и загрузка данных

Прежде чем перейти непосредственно к самим методам, давайте сначала посмотрим на набор данных, который мы будем анализировать. Это взято из исследования Stamey et al. (1989), которые исследовали влияние различных клинических измерений на уровень простатоспецифического антигена (ПСА). Задача состоит в том, чтобы определить факторы риска рака простаты на основе набора клинических и демографических переменных. Данные вместе с некоторыми описаниями переменных можно найти на веб-сайте Hastie’s et al. Учебник «Элементы статистического обучения »в разделе Данные .

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

Линейная регрессия

Начнем с простой линейной регрессии, которая и будет нашим эталоном. Он моделирует целевую переменную y как линейную комбинацию предикторов p или функций X:

Эта модель имеет p + 2 параметра, которые необходимо оценить на основе данных обучения:

  • p содержат β-коэффициенты, по одному на переменную, обозначающие их влияние на цель;
  • Один параметр перехвата, обозначенный выше как β0, который является прогнозом в случае, если все X равны нулю. Нет необходимости включать его в модель, и, действительно, в некоторых случаях его следует исключить (например, если кто-то хочет включить полный набор фиктивных переменных, обозначающих уровни категориальной переменной), но в целом это дает модели большую гибкость, как вы увидите в следующем абзаце;
  • Один параметр дисперсии члена ошибки Гаусса.

Эти параметры обычно оцениваются с использованием метода наименьших квадратов (МНК). OLS минимизирует сумму квадратов остатков, определяемую выражением

Этот критерий минимизации полезно представить графически. Имея только один предиктор X, мы находимся в двухмерном пространстве, образованном этим предиктором и целью. В этой настройке модель помещается в такую ​​линию в пространстве XY, которое является ближайшим ко всем точкам данных, причем расстояние измеряется как сумма квадратов вертикальных расстояний всех точек данных - см. Левую панель ниже. Если есть два предиктора, X1 и X2, пространство увеличивается до 3D, и теперь модель соответствует плоскости, которая находится ближе всего ко всем точкам в трехмерном пространстве - см. Правую панель ниже. С более чем двумя элементами плоскость становится несколько абстрактной гиперплоскостью, но идея остается той же. Эти визуализации также помогают увидеть, как пересечение дает модели большую гибкость: если он включен, он позволяет линии или плоскости не пересекать начало координат пространства.

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

Включение столбца единиц в матрицу X позволяет нам выразить часть пересечения вектора β-шляпы в приведенной выше формуле. «Шляпа» над «β» означает, что это оценочное значение, основанное на обучающих данных.

Компромисс смещения и дисперсии

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

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

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

Лучшее подмножество регрессии

Простой подход к выбору подмножества переменных для линейной регрессии состоит в том, чтобы попробовать все возможные комбинации и выбрать ту, которая минимизирует какой-либо критерий. Это то, к чему стремится регрессия лучшего подмножества. Для каждого k ∈ {1, 2,…, p}, где p - общее количество доступных функций, выбирается подмножество размера k , что дает наименьшую остаточную сумму квадратов. Однако сумма квадратов не может использоваться в качестве критерия для определения самого k, поскольку она обязательно уменьшается с k: чем больше переменных включено в модель, тем меньше являются его остатками. Однако это не гарантирует лучшего прогнозирования. Поэтому при выборе окончательной модели следует использовать другой критерий. Для моделей, ориентированных на прогнозирование, ошибка (возможно, перекрестная проверка) тестовых данных является обычным выбором.

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

Риджская регрессия

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

В Ridge Regression функция потерь линейной регрессии расширена таким образом, чтобы не только минимизировать сумму квадратов остатков, но и снизить размер оценок параметров:

Решение этой задачи минимизации приводит к аналитической формуле для βs:

где I обозначает единичную матрицу. Штрафной член λ является гиперпараметром, который следует выбрать: чем больше его значение, тем больше коэффициенты сужаются до нуля. Из приведенной выше формулы видно, что когда λ стремится к нулю, аддитивный штраф исчезает, и β-гребень становится таким же, как β-OLS из линейной регрессии. С другой стороны, когда λ растет до бесконечности, β-гребень приближается к нулю: с достаточно высоким штрафом коэффициенты могут быть сокращены до сколь угодно близко к нулю.

Но действительно ли это сокращение приводит к уменьшению дисперсии модели за счет внесения некоторой предвзятости, как было обещано? Да, это ясно из формул для смещения и дисперсии оценок гребневой регрессии: с увеличением λ смещение увеличивается, а дисперсия уменьшается!

Теперь, как выбрать наилучшее значение для λ? Запустите перекрестную проверку, пробуя набор различных значений, и выберите то, которое минимизирует перекрестную проверку проверенных данных на тестовых данных. К счастью, scikit-learn Python может сделать это за нас.

ЛАССО

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

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

Однако на практике истинные значения параметров неизвестны. Таким образом, выбор между Ridge Regression и LASSO может быть основан на ошибке прогнозирования вне выборки. Другой вариант - объединить эти два подхода в один - см. Следующий раздел!

Функция потерь LASSO выглядит следующим образом:

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

Эластичная сетка

Elastic Net впервые появилась в результате критики LASSO, выбор переменных которой может быть слишком зависимым от данных и, следовательно, нестабильным. Ее решение состоит в том, чтобы объединить штрафы Ридж-регрессии и LASSO, чтобы получить лучшее из обоих миров. Elastic Net стремится минимизировать функцию потерь, которая включает штрафы L1 и L2:

где α - параметр смешения между регрессией хребта (когда он равен нулю) и LASSO (когда он равен единице). Лучшее α можно выбрать с помощью настройки гиперпараметров scikit-learn на основе перекрестной проверки.

Наименьшая угловая регрессия

До сих пор мы обсуждали один метод подмножества, регрессию наилучшего подмножества, и три метода сжатия: регрессию гребня, LASSO, и их комбинацию, эластичную сеть. Этот раздел посвящен подходу, находящемуся где-то посередине между подмножеством и сжатием: регрессия по наименьшему углу (LAR). Этот алгоритм начинается с нулевой модели, все коэффициенты которой равны нулю, а затем работает итеративно, на каждом шаге перемещая коэффициент одной из переменных в сторону ее значения наименьших квадратов.

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

Приведенный ниже фрагмент кода применяет LAR к данным простаты.

Регрессия основных компонентов

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

Первый из этих двух методов - это регрессия главных компонентов. Он применяет анализ основных компонентов, метод, позволяющий получить набор новых функций, не коррелированных друг с другом и имеющих высокую дисперсию (чтобы они могли объяснить дисперсию цели), а затем использует их как функции в простой линейной регрессии. Это делает его похожим на регрессию хребта, поскольку оба они работают с пространством основных компонентов исходных функций (вывод хребтовой регрессии на основе PCA см. [1] в Источниках внизу этой статьи). Разница в том, что PCR отбрасывает компоненты с наименьшей информативностью, а Ridge Regression просто сжимает их сильнее.

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

Частичные наименьшие квадраты

Последний метод, обсуждаемый в этой статье, - это метод наименьших квадратов (PLS). Подобно регрессии основных компонентов, он также использует небольшой набор линейных комбинаций исходных функций. Разница заключается в том, как строятся эти комбинации. В то время как регрессия основных компонентов использует только сами X для создания производных функций Z, функция частичных наименьших квадратов дополнительно использует целевое значение y. Следовательно, при построении Z PLS ищет направления, которые имеют высокую дисперсию (поскольку они могут объяснить дисперсию в цели) и высокую корреляцию с целью. Это контрастирует с подходом на основе главных компонентов, который фокусируется только на высокой дисперсии.

Под капотом алгоритма первая из новых функций, z1, создается как линейная комбинация всех функций X, где каждая из X s взвешивается его внутренним продуктом с целевым значением y. Затем y регрессирует на z1, что дает β-коэффициенты PLS. Наконец, все X ортогонализированы относительно z1. Затем процесс начинается заново для z2 и продолжается до тех пор, пока не будет получено желаемое количество компонентов в Z. Этот номер, как обычно, можно выбрать путем перекрестной проверки.

Можно показать, что хотя PLS сжимает компоненты с низкой дисперсией в Z по желанию, иногда он может раздувать компоненты с высокой дисперсией, что в некоторых случаях может приводить к более высоким ошибкам прогнозирования. Это похоже на наши данные о простате: PLS показывает худшие результаты среди всех обсуждаемых методов.

Резюме и выводы

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

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

В этой статье обсуждаются несколько методов подмножества и усадки:

  • Регрессия наилучшего подмножества перебирает все возможные комбинации функций, чтобы выбрать наилучшую;
  • Риджевая регрессия наказывает квадраты значений коэффициентов (штраф L2), заставляя их быть маленькими;
  • LASSO штрафует абсолютные значения коэффициентов (штраф L1), что может привести к тому, что некоторые из них будут в точности равны нулю;
  • Elastic Net сочетает в себе штрафы L1 и L2, используя лучшее из Ridge и Lasso;
  • Регрессия наименьшего угла подходит между разделением на подмножество и сжатием: она работает итеративно, добавляя «некоторую часть» одной из функций на каждом этапе;
  • Регрессия основных компонентов выполняет PCA, чтобы сжать исходные функции до небольшого подмножества новых функций, а затем использует их в качестве предикторов;
  • Метод наименьших квадратов также объединяет исходные функции в меньшее подмножество новых, но, в отличие от PCR, он также использует целевые объекты для их построения.

Как вы увидите из приложений к данным о простате, если вы запустите приведенные выше фрагменты кода, большинство этих методов работают одинаково с точки зрения точности прогнозов. Ошибки первых 5 методов находятся в диапазоне от 0,467 до 0,517, превосходя ошибку наименьших квадратов 0,523. Последние два, PCR и PLS, работают хуже, возможно, из-за того, что в данных не так много функций, поэтому выгоды от уменьшения размерности ограничены.

Спасибо за прочтение! Надеюсь, вы узнали что-то полезное, что принесет пользу вашим проектам 🚀

Если вам понравился этот пост, попробуйте одну из других моих статей. Не можете выбрать? Выберите один из них:







Источники

  1. Хасти Т., Тибширани Р. и Фридман Дж. Х. (2009). Элементы статистического обучения: интеллектуальный анализ данных, вывод и прогнозирование. 2-е изд. Нью-Йорк: Спрингер.
  2. Https://www.datacamp.com/community/tutorials/tutorial-ridge-lasso-elastic-net