0

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

4

3 回答 3

1

使用更好的分类器可能会或可能不会解决您的问题。这里的问题是你的问题是不平衡的。如果数据是不可分离的,那么 90% 的准确率可能代表良好的性能,分类器通过始终做出相同的预测来实现。如果这不是您想要的行为,您应该使用成本函数或从您的正面重新采样,以便您有更多的正面数量。

于 2013-12-01T10:28:37.333 回答
0

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

当您想使用弱预测变量来识别罕见案例时,任何分类方法都可能无法找到倾向得分高于 0.5 的案例,从而导致您的案例全为 0。

在这种情况下,您可以做 3 件事:

  • 如果可能的话,我建议找到更强的预测因子
  • 不同的统计方法可能更适合识别数据集中的模式
  • 降低分界点会增加真阳性的数量,但会以更多的假阳性为代价
于 2013-11-27T07:40:08.907 回答
0

有几十个分类器,包括:

  • 逻辑回归
  • 支持向量机
  • 决策树
  • 神经网络
  • 随机森林
  • 很多很多...

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

那么为什么NB会失败呢?朴素贝叶斯非常朴素,它假设每个特征都是独立的,这种情况很少发生,所以它只是一个简单的理解,但总的来说分类器非常弱。

于 2013-11-19T10:53:40.923 回答