【问题标题】:implement Naive Bayes Gaussian classifier on the number classification data在数字分类数据上实现朴素贝叶斯高斯分类器
【发布时间】:2018-03-12 19:37:32
【问题描述】:

我正在尝试对数字分类数据实施朴素贝叶斯高斯分类器。其中每个特征代表一个像素。

在尝试实现这一点时,我遇到了一个问题,我注意到一些特征方差等于 0。 这是一个问题,因为在尝试求解概率时我无法除以 0。

我可以做些什么来解决这个问题?

【问题讨论】:

  • 您遇到的错误的小代码和屏幕截图会有所帮助。

标签: machine-learning classification gaussian naivebayes


【解决方案1】:

非常简短的回答是您不能 - 即使您通常可以尝试将高斯分布拟合到任何数据(无论其真实分布如何),但有一个例外 - 恒定情况(0 方差)。所以,你可以做什么?主要有三种解决方案:

  1. 忽略 0 方差像素。我不推荐这种方法,因为它会丢失信息,但如果它是 0 方差每个类(这是 MNIST 的常见情况 - 一些像素是黑色的,独立来自class) 那么它实际上在数学上是完全合理的。为什么?答案很简单,如果对于每个类,给定特征是恒定的(等于某个单个值),那么它实际上不会带来分类信息,因此忽略它不会影响假设特征条件独立的模型(例如 NB) .

  2. 不要进行 MLE 估计(因此使用 N(mean(X), std(X)))使用正则化估计器,例如形式 N(mean(X), std(X) + eps) ,相当于为每个像素独立添加 eps-noise。这是我推荐的一种非常通用的方法。

  3. 使用更好的分布类别,如果您的数据是图像(并且由于您的方差为 0,我假设这些是二进制图像,甚至可能是 MNIST)您有 K 个特征,每个特征都在 [0, 1] 区间内。您可以将多项分布与分桶一起使用,因此 P(x e Bi|y) = #{ x e Bi | y } / #{ x | y }。最后,这通常是 最好的 事情(但需要对您的数据有一些了解),因为问题是您正在尝试使用不适合所提供数据的模型,我可以保证你,正确的分配总是会给NB带来更好的结果。那么如何才能找到一个好的分布呢?为每个特征绘制条件边际 P(xi|y),并在此基础上查看它们的外观 - 选择与行为匹配的分布类,我可以向您保证,这些看起来不会像高斯分布。

【讨论】:

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