小编Jan*_*n K的帖子

如何将标准化应用于训练和测试数据集

假设我有一个shape的10特征数据集和一个Xshape[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)
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试使用模型进行预测,当我尝试反转缩放以查看 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
Run Code Online (Sandbox Code Playgroud)


我还有一个问题。由于我有目标值,我应该使用

scaler = preprocessing.StandardScaler()

X_train_std = scaler.fit_transform(X_train, y_train)
X_test_std = scaler.transform(X_test)
Run Code Online (Sandbox Code Playgroud)

而不是第一个代码块?


我是否也必须将转换应用于y_trainy_test …

python machine-learning scikit-learn

3
推荐指数
1
解决办法
1583
查看次数

标签 统计

machine-learning ×1

python ×1

scikit-learn ×1