следует ли изменять масштаб индикатора / двоичных / фиктивных предикторов для LASSO


30

Для LASSO (и других процедур выбора модели) важно изменить масштаб предикторов. Общая рекомендация я следую просто использовать 0, 1 среднее стандартное отклонение нормализации для непрерывных переменных. Но что тут делать с чайниками?

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


2
Краткий ответ - нет, не масштабируйте манекены
Affine

4
В связи с этим
Джульет

@julieth, спасибо большое, дайте мне знать, если вы нашли какие-то ответы с тех пор.
Ласло

Ответы:


27

По словам Тибширани ( «Метод Лассо для изменчивого выбора в модели Кокса», Статистика в медицине, т. 16, 385–395 (1997) ), который буквально написал книгу о методах регуляризации, вы должны стандартизировать манекены. Тем не менее, вы теряете прямую интерпретацию ваших коэффициентов. Если вы этого не сделаете, ваши переменные не находятся на ровном игровом поле. По сути, вы склоняете чашу весов в пользу ваших непрерывных переменных (скорее всего). Итак, если ваша основная цель - выбор модели, то это вопиющая ошибка. Однако, если вас больше интересует интерпретация, возможно, это не лучшая идея.

Рекомендация на странице 394:

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


3
Не могли бы вы дать точную ссылку на то, где Тибширани предлагает стандартизировать манекены.
seanv507

@ seanv507 «... один кодирует регрессоры с фиктивными переменными, а затем стандартизирует фиктивные переменные ». Я думаю, что объяснение Рократа правильное: в общем, вы хотите, чтобы все предикторы, включая манекенов, имели одинаковый масштаб и дисперсию, чтобы наказание было справедливым.
Роберт Кубрик

1
@RobertKubrick Я не согласен. Основная причина регуляризации заключается в том, что небольшие изменения должны иметь небольшие последствия. Таким образом, в идеальном случае все ваши переменные имеют естественный физический масштаб относительно вашей зависимой переменной, а вы не нормализуете их. Обычно мы не знаем правильного масштаба, поэтому прибегаем к нормализации. Однако категориальные переменные имеют такой естественный масштаб, а именно вероятность того, что они равны 0 или 1: я бы сказал, что переменная, которая в большинстве случаев равна 0, менее важна, чем переменная, которая переворачивается между 0/1. Вместо этого ответ Джеффа кажется уместным.
seanv507

8

Блог Эндрю Гельмана, « Когда нужно стандартизировать регрессионные данные, а когда оставить их в покое» , также стоит посмотреть. Эта часть, в частности, актуальна:

Для сравнения коэффициентов для разных предикторов в модели стандартизация получает признание. (Хотя я не стандартизирую двоичные входы. Я кодирую их как 0/1, а затем я стандартизирую все другие числовые входы путем деления на два стандартных отклонения, таким образом, помещая их приблизительно в тот же масштаб, что и переменные 0/1.)


1
И когда он говорит «не стандартизировать бинарные входы» , он, кажется, имеет в виду какую-то горячую группу переменных, то есть пустышки для категориальных переменных?
SMCI

2
p(1p)p=0.50.25

x -> x / 2σ

несмотря ни на что, это, кажется, все объяснено здесь: stat.columbia.edu/~gelman/research/unpublished/…
Алекс

3

Это скорее комментарий, но слишком длинный. Одним из наиболее часто используемых программ для лассо (и друзей) является R's glmnet. Со страницы справки, напечатанной ?glmnet:

Стандартизация: Логический флаг для стандартизации переменной х, до подбора последовательности модели. Коэффициенты всегда возвращаются в исходном масштабе. По умолчанию «стандартизировать = ИСТИНА». Если переменные уже находятся в одних и тех же единицах, возможно, вы не захотите стандартизировать. Смотрите подробности ниже для y стандартизации с 'family = "gaussian"'.

X

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.