Python 训练集规范化后,测试集应该做什么
训练装置的头部看起来是这样的Python 训练集规范化后,测试集应该做什么,python,scikit-learn,dataset,data-science,Python,Scikit Learn,Dataset,Data Science,训练装置的头部看起来是这样的 Session ID Timestamp Item ID Price Quantity 0 420374 2014-04-06T18:44:58.314Z 214537888 12462 1 1 420374 2014-04-06T18:44:58.325Z 214537850 10471 1 2 281626 2014-04-06T09:40:13.032Z 21
Session ID Timestamp Item ID Price Quantity
0 420374 2014-04-06T18:44:58.314Z 214537888 12462 1
1 420374 2014-04-06T18:44:58.325Z 214537850 10471 1
2 281626 2014-04-06T09:40:13.032Z 214535653 1883 1
3 420368 2014-04-04T06:13:28.848Z 214530572 6073 1
4 420368 2014-04-04T06:13:28.858Z 214835025 2617 1
因此,我对数据进行预处理,使它们逐列标准化,并将它们适合于SGDClassizer
from sklearn import linear_model
from sklearn import preprocessing as pp
scaler = pp.MinMaxScaler()
columns_list = list(train_data.columns)
del columns_list[-1]
train_data[columns_list] = scaler.fit_transform(train_data[columns_list])
clf = linear_model.SGDClassifier()
clf.fit(train_data.iloc[:, :-2],train_data.iloc[:,-1])
然后我想用模型进行预测,比如clf.predict()
,但是原始测试集应该是以下格式
Session ID Timestamp Item ID Price Quantity
0 420374 2014-04-06T18:44:58.314Z 214537888 12462 1
那么我是否也需要使它们与训练集正常化
模型需要什么样的测试数据
测试数据需要什么预处理?我们将所有预处理应用于对列车数据执行时学习的测试数据。我们没有从测试数据中学到任何新东西 因此,在您的情况下,我们仅对我们从列车数据中学到的测试数据应用相同的标准化:-
test_data[columns_list] = scaler.transform(test_data[columns_list])
# Predict Quantity from model
y_pred = clf.predict(test_data.iloc[:, :-2])
# Actual values of Quantity
y_true = test_data.iloc[:,-1]
# Now use y_true and y_pred to calculate the metrics.
我们将所有的预处理应用于测试数据,这些数据是在对列车数据执行时学习到的。我们没有从测试数据中学到任何新东西 因此,在您的情况下,我们仅对我们从列车数据中学到的测试数据应用相同的标准化:-
test_data[columns_list] = scaler.transform(test_data[columns_list])
# Predict Quantity from model
y_pred = clf.predict(test_data.iloc[:, :-2])
# Actual values of Quantity
y_true = test_data.iloc[:,-1]
# Now use y_true and y_pred to calculate the metrics.
预处理模块还提供了一个实用程序类
实现Transformer API以计算平均值的StandardScaler
和训练集上的标准偏差,以便以后能够
在测试集上重新应用相同的转换
预处理模块还提供了实用类规范化器
它使用Transformer API实现相同的操作
因此,只需在测试集上重新应用相同的转换就可以了。
预处理模块还提供了一个实用程序类
实现Transformer API以计算平均值的StandardScaler
和训练集上的标准偏差,以便以后能够
在测试集上重新应用相同的转换
预处理模块还提供了实用类规范化器
它使用Transformer API实现相同的操作
因此,只要在测试集上重新应用相同的转换就可以了