【发布时间】:2021-11-22 10:55:00
【问题描述】:
我对来自scikit-learn 的predict() 函数有疑问。我正在尝试通过测试数据来验证我训练有素的分类器,这些数据不在训练数据中并且也有不同的标签。所以我基本上想要分类器的输出是:“新数据是不可预测的”。我该如何实现?
现在,分类器只是试图用完全不同的标签来预测新数据上的训练标签。你能帮帮我吗?!
我的分类器管道:
text_clf_NB = Pipeline([('vect', vects_NB),
('tfidf', tf_idf_NB),
('clf', classifier('NB')) # choose classifier
])
我的预测:
pred_NB = text_clf_NB.fit(X_train, Y_train).predict(X_others)
X_others 有一个带有未训练标签的新案例,我希望分类器注意到,这是一个与训练案例不相似的案例,而不仅仅是预测训练案例中最可能的标签是什么新案例。
【问题讨论】:
-
分类器在分类/预测新数据时不看标签。您应该只检查标签是否不在您训练模型的标签列表中
-
是的,它不在我训练过的模型的标签中。不,我不希望分类器查看标签。但我希望分类器注意到,当一个新案例与训练案例完全不相似时,而不仅仅是试图给它贴上任何标签。
-
因为它总是试图预测任何经过训练的标签。从来没有,新的案例根本不相似,所以没有合适的标签
-
能否请您向我们展示您正在尝试使用代码 sn-p 的内容,以便我们可以帮助您更好地解决问题?
-
我确实添加了一些代码。我认为 predict() 函数不适合我的目的。我只是不知道如何解决我的问题。
标签: python machine-learning scikit-learn predict