Может ли ввод для "Лассо" в Python содержать категориальные переменные?

Я хочу выполнить множественную линейную регрессию в python с лассо. Я не уверен, может ли входная матрица наблюдения X содержать категориальные переменные. Я прочитал инструкцию отсюда: лассо на питоне

Но он простой и не указывает разрешенные типы. Например, мой код включает:

model = Lasso(fit_intercept=False, alpha=0.01)
model.fit(X, y)

В приведенном выше коде X матрица наблюдения размером n на p, может ли одна из p переменных быть категориального типа?

2 ответа

Вам необходимо представить категориальные переменные, используя единицы и нули. Если ваши категориальные переменные являются двоичными, то есть каждая принадлежит к одной из двух категорий, тогда вы заменяете все переменные категории A и B на 0 и 1 соответственно. Если у некоторых есть более двух категорий, вам нужно будет использовать фиктивные переменные.

Обычно у меня есть данные в фрейме данных Pandas, и в этом случае я использую houses = pd.get_dummies(houses), который создает фиктивные переменные.

У предыдущего постера есть хороший ответ на это, вам нужно закодировать категориальные переменные. Стандартный способ - это одно горячее кодирование (или фиктивное кодирование), но есть много способов сделать это.

Вот хорошая библиотека, в которой есть много разных способов кодирования категориальных переменных. Они также реализованы для работы с Sci-kit learn.

https://contrib.scikit-learn.org/categorical-encoding/

Другие вопросы по тегам