【问题标题】:How to predict on a single data sample when preprocssing is needed需要预处理时如何预测单个数据样本
【发布时间】:2018-09-13 23:29:21
【问题描述】:

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

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)

在这里,训练数据集和测试数据集都在适合分类器之前进行了缩放。但在我的任务中,我将预测单个数据样本。在训练我的模型后,我将从流线获取数据。所以每次接收到一个新数据时,我都需要使用分类器对其进行预测,并使用预测值来执行我的任务。

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

【问题讨论】:

    标签: machine-learning scale


    【解决方案1】:

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

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

    【讨论】:

    • 有道理!感谢您的帮助。
    猜你喜欢
    • 2018-09-16
    • 1970-01-01
    • 2021-07-07
    • 2023-03-27
    • 2017-12-19
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2013-11-27
    相关资源
    最近更新 更多