机器学习分类结果太好了,不是真的吗?

时间:2016-08-16 20:34:46

标签: python pandas machine-learning scikit-learn classification

对所有文字感到抱歉,但我认为这个项目的背景会有所帮助:

我一直致力于二元分类项目。原始数据集包括大约28,000个0级和650个1级,所以它非常不平衡。我得到了一个欠采样和过采样的数据集,每个类有5,000个(第1类实例只复制了9次)。在训练模型并得到低于标准的结果(AUC大约为0.85,但它需要更好)后,我开始想知道这些采样技术是否真的是一个好主意,所以我再次取出了原始的高度不平衡的数据集。我将它插入默认的GradientBoostClassifier,在80%的数据上训练它 我马上得到了这样的东西:

Accuracy:
0.997367035282
AUC:
.9998
Confusion Matrix:
[[5562    7]
 [   8  120]]

现在,我知道高精度可能是不平衡类的人工制品,但我没想到像这样或那种性能的AUC!所以我很困惑,觉得我的技术肯定会出现错误...但我不知道它是什么。我也尝试了几种不同的分类器,并获得了类似水平的可笑表现。我没有将类标签留在数据数组中,并且训练数据完全不同于测试数据。每个观察也有大约130个特征,因此这不是一个简单的分类。看起来好像有些不对劲,我确信分类器不能这么好。还有什么我可以忽略的吗?人们遇到的任何其他常见陷阱有不平衡的数据吗?

我可以提供代码,概率图,示例数据点等等,如果它们会有所帮助,但我现在不想让它太长。感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:0)

准确度可能不是您的最佳性能指标,也许您可​​以考虑使用精度,召回和F1分数,并通过学习曲线,过拟合检测等执行一些调试。