我正在尝试使用Naive Bayes对样本进行分类。我的样本大小为280万条记录,90%的记录具有类别标签(因变量)=“0”,其余记录为“1”。测试集中的分布也相同(90% - 10%) 朴素贝叶斯分类器将整个测试集标记为“0”。 我该如何处理这个案子?在这种情况下是否还有其他算法可以实现。
答案 0 :(得分:1)
使用更好的分类器可能会或可能不会解决您的问题。这里的问题是你的问题是不平衡的。如果数据是不可分离的,则90%的准确度可能表示良好的性能,分类器通过始终进行相同的预测来实现。如果这不是您想要的行为,您应该使用成本函数或从积极因素中重新取样,以便获得更多偶数。
答案 1 :(得分:0)
有许多分类器,包括:
其中大多数都可以使用一些自定义技术来处理类别不成比例,例如在SVM中它是一个“类权重”(在scikit-learn中可用)。
那为什么NB会失败?朴素贝叶斯非常天真,它假定每个特征都是独立的,这种情况很少见,因此理解它只是一个简单的想法,但一般来说分类器非常弱。
答案 2 :(得分:0)
几乎所有的分类方法实际上都不会返回二进制结果,而是倾向得分(通常在0和1之间)给定案例属于该类别的可能性。然后通过选择一个截止点来创建二进制结果,通常为.5。
如果您想使用弱预测因子识别罕见病例,任何分类方法都可能无法找到倾向得分高于.5的病例,导致所有0都与您的病例一样。
在这种情况下你可以做三件事: