假设我有一个shape的10
特征数据集和一个X
shape[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_train
和y_test …