Попытка создать фиктивные переменные, используя OnehotEncoder - PullRequest
0 голосов
/ 26 марта 2020

Я изучаю машинное обучение, и я пытался предварительно обработать данные. и я наткнулся на ошибку. X [:, 1] = X_label_encoder_1.fit_transform (X [:, 1]) IndexError: index 1 выходит за границы оси 1 с размером 1. Я попробовал все, но не смог его получить.

# get the dependant and independent variables
X = dataset.iloc[:, 3:13].values
y = dataset.iloc[:, 13].values

X = X.reshape(-1, 1)
y = y.reshape(-1, 1)

# change the categorical values into numbers
X_label_encoder_1 = LabelEncoder()
X[:, 1] = X_label_encoder_1.fit_transform(X[:,1])
X_label_encoder_2 = LabelEncoder()
X[:, 2] = X_label_encoder_2.fit_transform(X[:,2])

onehotencoder = OneHotEncoder(categories=X[1])
X = onehotencoder.fit_transform(X).toarray()

1 Ответ

0 голосов
/ 31 марта 2020

Вот как я бы подошел к этому:

# load 'pandas' library
import pandas as pd

# One-hot encode categorical variable
one_hot_column_name = pd.get_dummies(dataset_name['column_to_encode']

# Drop original categorical variable after it has been encoded
dataset_name = dataset_name.drop('categorical_column', axis = 1)

# join codings together
dataset_name = dataset_name.join([one_hot_column_name])

Надеюсь, это сработает, и добро пожаловать в Машинное обучение!

...