Отбрасывание одного из столбцов при использовании быстрого кодирования


22

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

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

Например, кодирование пола как двух переменных is_maleи is_femaleсоздает две особенности, которые совершенно отрицательно коррелируют, поэтому они предложили просто использовать одну из них, эффективно установить базовую линию, чтобы сказать «мужской», а затем посмотреть, важен ли столбец is_female в прогнозирующем алгоритме. ,

Это имело смысл для меня, но я не нашел ничего в Интернете, чтобы предположить, что это может быть так, так что это неправильно или я что-то упустил?

Возможный (без ответа) дубликат: имеет ли значение коллинеарность функций с горячим кодированием для SVM и LogReg?


8
you end up with correlated features, so you should drop one of them as a "reference"Фиктивные переменные или индикаторные переменные (это два имени, используемые в статистике, синонимы к «горячему кодированию» в машинном обучении) в любом случае попарно коррелируют, будь то все переменные k или k-1. Таким образом, лучшее слово является «статистически / информационным избыточным», а не «коррелированным».
ttnphns

Набор всех k манекенов является мультиколлинеарным набором, потому что если вы знаете значения k-1 манекенов в данных, вы автоматически знаете значения этого последнего манекена. Некоторые методы или алгоритмы анализа данных требуют, чтобы вы отбросили один из k. Остальные способны справиться со всеми k.
ttnphns

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

Does keeping all k values theoretically make them weaker features, Нет (хотя я не уверен на 100%, что вы подразумеваете под «слабее»). using something like PCAОбратите внимание, на всякий случай, что PCA на множестве манекенов, представляющих одну и ту же категориальную переменную, имеет мало практического смысла, потому что корреляции внутри набора манекенов отражают только отношения между частотами категории (поэтому, если все частоты равны, все корреляции равны до 1 / (к-1)).
ttnphns

Я имею в виду, что когда вы используете свою модель для оценки важности функции (например, со случайным лесом), будет ли она недооценивать важность этой переменной, если вы включите все значения k? Например, вы получаете «более правдивую» оценку важности пола, если вы используете только is_maleпеременную, а не оба варианта? Возможно, это не имеет смысла в этом контексте, и это может быть проблемой, только если две разные переменные фактически кодируют одну и ту же информацию (например, высота в дюймах и высота в см).
dasboth

Ответы:


23

lmglm

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

Пока что в этом ответе упоминаются только линейные (и некоторые слегка нелинейные) модели. Но как насчет очень нелинейных моделей, таких как деревья и случайные леса? Идеи категориального кодирования, такие как one-hot, основаны главным образом на линейных моделях и расширениях. Нет оснований полагать, что идеи, полученные из этого контекста, должны применяться без изменений для деревьев и лесов! для некоторых идей см. Регрессию случайных лесов с редкими данными в Python .

β,β2,β3β1знак равно0β2-β1,β3-β1


Я могу согласиться с тем, что выбор эталонной переменной повлияет на результат регуляризованной регрессии, но я не очень уверен, лучше ли оставить все переменные как есть, чем отбросить одну. Есть ли у вас причины для этого?
Кота Мори

Ну, только две альтернативы ... Сохранение всех уровней сохраняет неизменность, и нет никакого произвола. Если у вас есть другие причины, по которым вы хотите уменьшить количество уровней, например, слишком много, вы должны сообщить нам об этом
kjetil b halvorsen
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.