我有一个关于使用 sklearn 管道预测/分类数据的问题。我了解如何构建管道,使用训练数据对其进行训练,使用测试数据对其进行测试;但在那之后我迷路了。如何使用管道来预测新/未见数据的值?
我构建了一个管道,它用 a 转换分类数据,OneHotEncoder另一个通过用 a 缩放列来转换数值数据StandardScaler。然后我习惯FeatureUnion将两个管道组合起来,DecisionTreeClassifier()最后加入 a ,对数据进行分类。我成功地拟合了训练数据pipeline.fit(X_train,y_train),然后用 预测pipeline.predict(X_test)。这一切都很好。
接下来我想使用管道来预测新/未见数据的分类;但是当我打电话时,pipeline.predict(X_unseen)我得到一个ValueError. 该错误与数据的分类特征之一有关,即城市名称。管道似乎没有转换看不见的数据。
阅读有关管道的文档和几个示例,我了解何时.fit()调用.predict数据将通过整个管道传递。如果我的理解是正确的,那么pipeline.predict(X_unseen)应该通过管道传递新数据,对其进行转换然后对其进行分类。然而,情况似乎并非如此。谁能告诉我我遗漏了什么或误解了什么?如何使用我构建的管道来预测新数据?