如何在需要预处理时预测单个数据样本

时间:2018-04-04 11:56:31

标签: machine-learning scale

当我阅读scikit学习示例时,典型的机器学习流程是预处理 - >学习 - >预测。如下面显示的代码段:

steps = [('scalar', StandardScalar()), 
     ('knn', KNeighborsClassifier())]

pipeline = Pipeline(steps)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

knn_scaled = pipeline.fit(X_train, y_train)

y_pred = pipeline.predict(X_test)

此处,训练和测试数据集都会在插入分类器之前进行缩放。但在我的任务中,我将预测单个数据样本。在训练我的模型后,我将从流线获取数据。因此,每次收到一个新数据时,我需要使用分类器对其进行预测,并在我的任务之前使用预测值。

所以每次只有一个例子可用,如何在预测之前对其进行预处理?缩放这个单一的例子似乎毫无意义。我该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

就像训练分类器并使用生成的模型预测单个记录一样,预处理步骤也会生成预处理模型。假设你的输入是Xi,你已经拟合了预处理和分类器模型(分别为scalerclf):

Xi_new=scaler.transform(Xi) 
print(clf.predict(Xi_new))