SKlearn 分类器的诅咒

Curse of the SKlearn Classifiers

假设我们有 1,000 颗珠子,其中 900 颗是红色的,100 颗是蓝色的。当我运行问题通过SKlearn分类器集成时,

得分=clf.score(X_test,y_test)

然而,他们给出了大约 0.9 的分数,当我查看预测时,我发现它预测所有这些都是红色的,这就是它以 %90 的准确率得出的结果!请告诉我我做错了什么?更好的是,发生这种情况意味着什么?有没有更好的方法来衡量准确性?

你有一个不平衡的分类问题。你是write,默认score衡量的是accuracy,但是对于不平衡的数据还是建议看recall和precision。

This video explains it better than I could

上面的视频向您展示了您应该如何衡量数据的分类性能。为了处理数据不平衡,你检查imblearn库:

https://imbalanced-learn.readthedocs.io/en/stable/api.html

当您的数据集不平衡并且您选择 accuracy 作为指标时,可能会发生这种情况。原因是 always 决定红色,模型实际上在准确性方面做得很好,但正如您所注意到的,模型是无用的! 为了克服这个问题,您有一些选择,例如:
1. 使用其他指标,如 AUC(roc 曲线下面积)等
2.对classes使用不同的权重,对少数class.
给予更多的权重 3.使用简单的过采样或欠采样方法,或其他更复杂的方法,如SMOTE、ADASYN等

你也可以看看this article
您遇到的这个问题在实际应用中很常见。