Допустим, у меня есть 10
набор классов объектов X
формы [100, 10]
и y
целевой набор данных формы [100, 1]
.
Например, после разделения двух с sklearn.model_selection.train_test_split
я получил:
X_train: [70, 10]
X_test: [30, 10]
y_train: [70, 1]
y_test: [30, 1]
Как правильно применять стандартизацию?
Я пробовал с:
from sklearn import preprocessing
scaler = preprocessing.StandardScaler()
scaler.fit(X_train)
X_train_std = scaler.transform(X_train)
X_test_std = scaler.transform(X_test)
но тогда, если я пытаюсь предсказать, используя модель, когда я пытаюсь инвертировать масштабирование для просмотра MAE, у меня появляется ошибка
from sklearn import linear_model
lr = linear_model.LinearRegression()
lr.fit(X_train_std, y_train)
y_pred_std = lr.predict(X_test_std)
y_pred = scaler.inverse_transform(y_pred_std) # error here
У меня есть еще один вопрос. Так как у меня есть целевые значения, я должен использовать
scaler = preprocessing.StandardScaler()
X_train_std = scaler.fit_transform(X_train, y_train)
X_test_std = scaler.transform(X_test)
вместо первого блока кода?
Нужно ли применять преобразование также к наборам данных y_train
и y_test
? Я немного запутался