Использование категориальных переменных предикторов в Sci-Kit Learn - PullRequest
0 голосов
/ 11 января 2019

Основной вопрос здесь:

Я пытаюсь реализовать простую модель классификации по умолчанию для кредитных карт, в которой я просто использую model.fit, model.predict для своих входных данных. Однако эти входные данные содержат как категориальные данные (например, демографические данные, такие как возраст, женат или нет, уровень образования), так и непрерывные данные (например, кредитные балансы).

data.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 30000 entries, 1 to 30000
Data columns (total 24 columns):
LIMIT_BAL    30000 non-null float64
SEX          30000 non-null int64
EDUCATION    30000 non-null int64
MARRIAGE     30000 non-null int64
AGE          30000 non-null int64
PAY_1        30000 non-null int64
PAY_2        30000 non-null int64
PAY_3        30000 non-null int64
PAY_4        30000 non-null int64
PAY_5        30000 non-null int64
PAY_6        30000 non-null int64
BILL_AMT1    30000 non-null float64
BILL_AMT2    30000 non-null float64
BILL_AMT3    30000 non-null float64
BILL_AMT4    30000 non-null float64
BILL_AMT5    30000 non-null float64
BILL_AMT6    30000 non-null float64
PAY_AMT1     30000 non-null float64
PAY_AMT2     30000 non-null float64
PAY_AMT3     30000 non-null float64
PAY_AMT4     30000 non-null float64
PAY_AMT5     30000 non-null float64
PAY_AMT6     30000 non-null float64
default      30000 non-null int64
dtypes: float64(13), int64(11)
memory usage: 5.7 MB

Насколько я понимаю, scikit-learn требует, чтобы все данные были числовыми и непрерывными или конкретно кодировались как категориальная переменная. Числовая часть не является проблемой, поскольку все мои данные кодируются численно (например, 0 для женатых, 1 для нет), но 3 из моих переменных (SEX, EDUCATION и MARRIAGE) являются номинальными / порядковыми и должны быть закодированы как категориальные переменные вместо int64.

Как использовать кодирование этих 3 переменных с помощью модуля предварительной обработки scikit-learn, чтобы правильно подать эти функции в такую ​​модель, как логистическая регрессия?

Заранее спасибо, и, пожалуйста, простите за форматирование (не стесняйтесь редактировать или порекомендуйте, как правильно включить вывод Jupyter Notebook в сообщение переполнения стека).

1 Ответ

0 голосов
/ 11 января 2019

Категорические функции требуют большего внимания при проектировании функций, потому что такие функции, как возраст, дата и т. Д., Трудно кодировать. Есть много способов кодировать эти функции, анализируя предметные знания и многое другое.

Существует библиотека category_encoders , которая имеет множество функций для кодирования таких функций с помощью статистики. Больше вы можете найти здесь http://contrib.scikit -learn.org / категорическое кодирование /

Вот еще один хороший ресурс , который в качестве примера покажет вам использование метода кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...