使用Naive Bayes进行分类

时间:2013-11-19 10:31:29

标签: machine-learning classification probability naivebayes

我正在尝试使用Naive Bayes对样本进行分类。我的样本大小为280万条记录,90%的记录具有类别标签(因变量)=“0”,其余记录为“1”。测试集中的分布也相同(90% - 10%) 朴素贝叶斯分类器将整个测试集标记为“0”。 我该如何处理这个案子?在这种情况下是否还有其他算法可以实现。

3 个答案:

答案 0 :(得分:1)

使用更好的分类器可能会或可能不会解决您的问题。这里的问题是你的问题是不平衡的。如果数据是不可分离的,则90%的准确度可能表示良好的性能,分类器通过始终进行相同的预测来实现。如果这不是您想要的行为,您应该使用成本函数或从积极因素中重新取样,以便获得更多偶数。

答案 1 :(得分:0)

有许多分类器,包括:

  • 逻辑回归
  • SVM
  • 决策树
  • 神经网络
  • 随机森林
  • 很多,更多男人......

其中大多数都可以使用一些自定义技术来处理类别不成比例,例如在SVM中它是一个“类权重”(在scikit-learn中可用)。

那为什么NB会失败?朴素贝叶斯非常天真,它假定每个特征都是独立的,这种情况很少见,因此理解它只是一个简单的想法,但一般来说分类器非常弱。

答案 2 :(得分:0)

几乎所有的分类方法实际上都不会返回二进制结果,而是倾向得分(通常在0和1之间)给定案例属于该类别的可能性。然后通过选择一个截止点来创建二进制结果,通常为.5。

如果您想使用弱预测因子识别罕见病例,任何分类方法都可能无法找到倾向得分高于.5的病例,导致所有0都与您的病例一样。

在这种情况下你可以做三件事:

  • 我建议如果可能的话
  • 找到更强的预测变量
  • 不同的统计方法可能更好地识别数据集中的模式
  • 降低分界点将增加真阳性的数量,但会以更多误报为代价