Мне известен тот факт, что категориальные переменные с k уровнями должны кодироваться с помощью k-1 переменных в фиктивном кодировании (аналогично для многозначных категориальных переменных). Мне было интересно, сколько проблем делает одноразовое кодирование (то есть использование вместо этого k переменных) вместо фиктивного кодирования для различных методов регрессии, в основном, линейной регрессии, штрафной линейной регрессии (Lasso, Ridge, ElasticNet), на основе дерева (случайные леса). Машины градиентного повышения).
Я знаю, что при линейной регрессии возникают проблемы с множественной коллинеарностью (хотя на практике я использовал линейную регрессию с использованием ОНЭ без каких-либо проблем).
Однако нужно ли использовать фиктивную кодировку во всех них, и насколько неправильными будут результаты, если использовать кодирование одной горячей клавишей?
Мое внимание сосредоточено на прогнозировании в регрессионных моделях с несколькими категориями (с высокой степенью кардинальности), поэтому меня не интересуют доверительные интервалы.
Ответы:
Проблема с представлением категориальной переменной, которая имеет уровней с k переменными в регрессии, состоит в том, что, если модель также имеет постоянный член, то члены будут линейно зависимыми, и, следовательно, модель будет неидентифицируемой. Например, если модель µ = a 0 + a 1 X 1 + a 2 X 2 и X 2 = 1 - X 1 , то любой выбор ( β 0 , β 1 , β 2 )К К μ = а0+ а1Икс1+ а2Икс2 Икс2= 1 - Х1 ( β0, β1, β2) вектора параметров неотличим от . Поэтому, хотя программное обеспечение может дать вам оценку этих параметров, они не определены однозначно и, следовательно, вероятно, не будут очень полезными.( β0+ β2,β1- β2,0 )
Штраф сделает модель идентифицируемой, но избыточное кодирование все равно будет странным образом влиять на значения параметров, учитывая вышеизложенное.
Эффект избыточного кодирования для дерева решений (или множества деревьев), вероятно, будет приводить к избыточному весу рассматриваемого признака по сравнению с другими, поскольку он представлен с избыточной избыточной переменной и поэтому будет выбираться чаще, чем в противном случае расщепляется.
источник
У кодиолога был отличный ответ (+1). Методы горячего кодирования и фиктивного кодирования одинаковы, с точки зрения дизайна матрицы находятся в одном и том же пространстве с разным основанием. (хотя у горячего кодирования больше столбцов)
Поэтому, если вы сосредоточены на точности, а не на интерпретации. Два метода кодирования не имеют значения.
источник
Я чувствую , что лучший ответ на этот вопрос утопает в комментариях @MatthewDrury, в котором говорится , что есть разница , и что вы должны использовать , казалось бы , избыточный столбец в любом регуляризованном подходе. @ MatthewDrury рассуждения
Я думаю, что у него есть точка.
источник
k
уровнями или сk-1
уровнями в зависимости от ситуации. В дополнение к вашему заявлению (регламентированному / не регламентированному), будут ли рекомендации о том, что делать во всех случаях?