2015-12-26 5 views
3

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

Числовые параметры (например, метки и процент по разным предметам) тонкий для использования с регрессионной моделью. Но как мы нормализуем нечисловые параметры (пол, дата рождения, степень, специализация) здесь?

P.S. : Я использую пакет scikit-learn : machine learning in python.

ответ

0

«Нормальные [числовые] нечисловые параметры» на самом деле является огромной областью регрессии. Наиболее распространенное обращение - превратить каждую категориальную группу в набор двоичных переменных, называемый dummy variables.

Все категорически с n значениями должны быть преобразованы в n-1 фиктивные переменные. Так, например, для пола у вас может быть одна переменная «женщина», которая будет либо 0, либо 1 при каждом наблюдении. Почему n-1 и не n? Потому что вы хотите избежать dummy variable trap, где в основном столбец перехвата всех 1 может быть восстановлен из линейной комбинации ваших фиктивных столбцов. В относительно нетехнических терминах это плохо, потому что это испортит линейную алгебру, необходимую для регрессии.

Я не очень хорошо знаком с библиотекой scikit-learn, но я настоятельно призываю вас убедиться, что любые методы, которые вы используете, гарантируют, что каждый категорический код будет n-1 новых столбцов, а не n.

1

Вы хотите кодировать категориальные параметры.

  • Для двоичных категориальных параметров, таких как пол, это относительно просто: ввести один двоичный параметр: 1 = женщина, 0 = мужчина.
  • Если существует более двух категорий, вы можете попробовать однострунное кодирование. Подробнее о научно-ките узнать documenten: http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features

Обратите внимание, что дата не является категоричным параметр! Преобразуйте его в временную метку unix (секунды с эпохи), и у вас есть хороший параметр, на котором вы можете регрессировать.