python - 分类器对相同数据的拟合和预测给出不同的结果

标签 python machine-learning scikit-learn

我正在使用 sklearn 训练分类器,但我做错了。在下面的代码中,我为训练和预测输入了完全相同的值,但结果并不相同。这是怎么发生的?

text_clf = Pipeline([('vect', CountVectorizer()),
                     ('tfidf', TfidfTransformer()),
                     ('clf', MultinomialNB()),
])
text_clf = text_clf.fit(X, y)

predicted = text_clf.predict(X)

print set(np.asarray(y)) == set(predicted) #gives false

数据 X 是 unicode 列表和 y 数字列表(1 和 0)。

最佳答案

一般来说,不会,两者不会相等。除非您使用仅收敛于 100% 训练准确率的方法,否则您将无法获得完美拟合。

在 ML 中强制 100% 准确度通常会导致过度拟合,导致模型非常适合训练集,以至于它在任何后续(例如现实世界) ) 输入。

如果您要求 100% 的准确性,那么机器学习对于您的问题来说是完全错误的范例。您需要确定性分类,而不是自适应启发式。

关于python - 分类器对相同数据的拟合和预测给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43262467/

相关文章:

python - 日期时间类型图中的 Bokeh 环形楔形图

python - 神经网络在一个时代后变平

python - 绘制 K 折交叉验证的 ROC 曲线

scikit-learn roc_curve : why does it return a threshold value = 2 some time?

Python 故障排除 : ImportError: cannot import name 'main'

python - 从 3D 数组中选择非无限数据

tensorflow - Google Colab Tensorflow 模型未使用时代中的所有样本

machine-learning - 如何为泰坦尼克号数据集定义 oneHotEncoder

python - 如何使用 ctypes 在 python 中正确包装 C API?

python - 多个gpus(1080Ti)在tensorflow中不加速训练,在cifar10_estimator代码上测试