One-Hot Encoding в Scikit-Learn только для части DataFrame - PullRequest
1 голос
/ 13 июня 2019

Я пытаюсь использовать классификатор дерева решений для моих данных, который очень похож на данные в этом руководстве: https://www.ritchieng.com/machinelearning-one-hot-encoding/ enter image description here

Затем учебник преобразует строки в числовые данные:

X = pd.read_csv('titanic_data.csv')
X = X.select_dtypes(include=[object])
le = preprocessing.LabelEncoder()
X_2 = X.apply(le.fit_transform)

В результате DataFrame выглядит следующим образом:

enter image description here

После этого данные передаются через OneHotEncoder, и я предполагаю, что затем их можно довольно легко разделить и передать в классификатор дерева решений.

Проблема в том, что мне кажется, что исходные числовые данные получают много через этот процесс кодирования. Как я могу сохранить или добавить позже числовые данные, которые были удалены во время процесса кодирования? Спасибо!

1 Ответ

2 голосов
/ 13 июня 2019

На самом деле существует действительно простое решение - использование pd.get_dummies()

Если у вас есть фрейм данных, подобный следующему:

so_data = {
    'passenger_id': [1,2,3,4,5],
    'survived': [1,0,0,1,0],
    'age': [24,25,68,39,5],
    'sex': ['female', 'male', 'male', 'female', 'female'],
    'first_name': ['Joanne', 'Mark', 'Josh', 'Petka', 'Ariel']
}
so_df = pd.DataFrame(so_data)

, который выглядит следующим образом:

    passenger_id    survived    age   sex       first_name
0              1           1    24  female        Joanne
1              2           0    25  male          Mark
2              3           0    68  male          Josh
3              4           1    39  female        Petka
4              5           0    5   female        Ariel

Вы можете просто сделать:

pd.get_dummies(so_df)

, что даст вам:

enter image description here

(извините за скриншот, но действительно трудно очистить df на SO)

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