【问题标题】:Classification using Naive Bayes使用朴素贝叶斯分类
【发布时间】:2013-12-02 20:37:14
【问题描述】:

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

【问题讨论】:

  • 在实践中,独立特征假设通常不成立,因此 NB 对它的工作原理有点偶然。我最近用random forests完成了一个项目,性能明显优于NB。
  • 这个问题也可以在stats.stackexchange.com问

标签: machine-learning classification probability naivebayes


【解决方案1】:

有几十个分类器,包括:

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

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

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

【讨论】:

  • 感谢您的建议...我会尝试检查其他人。 :)
【解决方案2】:

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

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

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

  • 我建议尽可能找到更强的预测变量
  • 不同的统计方法可能更适合识别数据集中的模式
  • 降低分界点会增加真阳性的数量,但会以更多的假阳性为代价

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 2017-04-19
      • 2012-07-02
      • 2017-01-10
      • 2020-06-02
      • 2015-11-03
      • 2018-05-09
      • 2015-01-03
      相关资源
      最近更新 更多