使用Naive Bayes进行分类

问题描述 投票:0回答:3

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

machine-learning classification probability naivebayes
3个回答
1
投票

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


0
投票

有几十个分类器,包括:

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

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

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


0
投票

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

当您想要使用弱预测变量来识别罕见情况时,任何分类方法都可能无法找到倾向得分高于.5的情况,导致所有情况都为0。

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

  • 我建议尽可能找到更强的预测因子
  • 一种不同的统计方法可能更好地识别数据集中的模式
  • 降低截止点将增加真阳性的数量,但代价是更多的误报
© www.soinside.com 2019 - 2024. All rights reserved.