У меня есть набор данных со столбцом, содержащим категории (названия стран), и мне нужно создать фиктивные переменные, а затем разбить данные на обучающие и тестовые наборы и выполнить некоторые функции масштабирования. Я использую этот код:
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
ct = ColumnTransformer([('country', OneHotEncoder(categories='auto'), [0])] , remainder='passthrough')
X = ct.fit_transform(X)
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
sc_y = StandardScaler()
y_train = sc_y.fit_transform(y_train)
но я получил эту ошибку:
ValueError: Expected 2D array, got 1D array instead:
array=[1. 1. 1. 0. 1. 0. 0. 1.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or
array.reshape(1, -1) if it contains a single sample.