Работа с категориальными и числовыми переменными в Python с множественной линейной регрессией - PullRequest
0 голосов
/ 22 ноября 2018

Итак, я уже выполнил множественную линейную регрессию в Python, используя LinearRegression от sklearn.

Все мои независимые переменные были числовыми (как и моя зависимая)

Но теперь я хотел бы выполнить множественную линейную регрессию, комбинируя числовые и нечисловые независимые переменные.

Поэтому у меня есть несколько вопросов:

  • Если я буду использовать фиктивные переменные или One-Hot для нечисловых, смогу ли я тогда выполнить LinearRegression от sklearn?

  • Если да, нужно ли мне изменять некоторые параметры?

  • Если нет, как мне выполнять линейную регрессию?

  • Одна вещь, которая беспокоит меня, - это то, что фиктивные / горячие методы не имеют дело с порядковыми переменными, верно?(Потому что, на мой взгляд, его не следует кодировать одинаково)

  • Проблема в том, что даже если я хочу кодировать по-разному номинальные и порядковые переменные, для Python кажется невозможным сказатьРазница между ними?

Это может быть легко для вас, но сейчас, как вы могли заметить, я немного сбит с толку, так что я действительно мог бы использовать вашу помощь!

Заранее спасибо,

Алекс

1 Ответ

0 голосов
/ 22 ноября 2018
  • Если я буду использовать фиктивные переменные или One-Hot для нечисловых переменных, смогу ли я тогда выполнить LinearRegression от sklearn?

Фактически модель должна бытьпитаются исключительно числовыми данными, поэтому вы должны использовать векторы OneHot для категориальных данных в ваших входных функциях.Для этого вы можете взглянуть на Scikit-Learn LabelEncoder и OneHotEncoder .

  • Одна вещь, которая беспокоит меня, это то, что фиктивные / горячие методы донне имеет дело с порядковыми переменными, верно?(Потому что, на мой взгляд, он не должен кодироваться одинаково)

Да.Как вы упоминаете, горячие методы не имеют дело с порядковыми переменными.Одним из способов работы с порядковыми объектами является создание карты масштаба и сопоставление этих объектов с этим масштабом. Ordinal - очень полезный инструмент для этих случаев.Вы можете добавить в него словарь сопоставления в соответствии с заранее определенным масштабным сопоставлением, как уже упоминалось.В противном случае, очевидно, что он случайным образом назначает целые числа различным категориям, так как не знает, как вывести какой-либо порядок.Из документации:

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

Надеюсь, это поможет.

...