Существует два разных способа кодирования категориальных переменных. Скажем, одна категориальная переменная имеет n значений. Горячее кодирование преобразует его в n переменных, а фиктивное кодирование преобразует его в n-1 переменные. Если у нас есть k категориальных переменных, каждая из которых имеет n значений. Одно горячее кодирование заканчивается переменными kn , а фиктивное кодирование заканчивается переменными kn-k .
Я слышал, что для одноразового кодирования перехват может привести к проблеме коллинеарности, из-за которой модель не работает. Кто-то называет это « фиктивной переменной-ловушкой ».
Мои вопросы:
Модель линейной регрессии Scikit-learn позволяет пользователям отключать перехват. Так что для горячего кодирования, я должен всегда устанавливать fit_intercept = False? Для фиктивного кодирования fit_intercept всегда должен быть установлен в True? Я не вижу никаких «предупреждений» на сайте.
Поскольку одноразовое кодирование генерирует больше переменных, имеет ли оно большую степень свободы, чем фиктивное кодирование?