【问题标题】:Naive Bayes without Naive assumption没有朴素假设的朴素贝叶斯
【发布时间】:2017-02-18 03:05:46
【问题描述】:

与没有天真的假设的相同想法相比,我试图理解为什么朴素贝叶斯分类器可以随特征数量线性扩展。我了解how the classifier workswhat's so "naive"。我不清楚为什么天真的假设给了我们线性缩放,而提升这个假设是指数级的。我正在寻找一个示例的演练,该示例显示了具有线性复杂度的“幼稚”设置下的算法,以及没有该假设的相同示例将证明指数复杂度。

【问题讨论】:

    标签: machine-learning classification naivebayes


    【解决方案1】:

    这里的问题在于以下数量

    P(x1, x2, x3, ..., xn | y)
    

    你必须估计。当您假设“天真”(功能独立)时,您会得到

    P(x1, x2, x3, ..., xn | y) = P(x1 | y)P(x2 | y) ... P(xn | y)
    

    您可以独立估计每个P(xi | y)。以一种自然的方式,这种方法线性地扩展,因为如果您添加另一个k 特征,您需要估计另一个k 概率,每个概率都使用一些非常简单的技术(例如计算具有给定特征的对象) .

    现在,如果没有天真,你就没有任何分解。因此,您必须跟踪所有形式的概率

    P(x1=v1, x2=v2, ..., xn=vn | y)
    

    对于vi 的每个可能值。在最简单的情况下,vi 只是“真”或“假”(事件发生与否),这已经为您提供了2^n 估计的概率(每个可能的“真”和“假”分配给一系列n 布尔变量)。因此,您的算法复杂度呈指数增长。然而,这里最大的问题通常不是计算问题,而是缺乏数据。由于要估计 2^n 的概率,您需要超过 2^n 的数据点才能对所有可能的事件进行任何估计。在现实生活中,您永远不会遇到大小为 10,000,000,000,000 点的数据集......这是使用这种方法的 40 个特征所需的(唯一的!)点数。

    【讨论】:

    • 有道理,但为什么我们会遇到估计 2^n 个个体概率的问题呢?是什么阻止我们简单地将单个模型放在具有一些线性(甚至有限)参数的联合分布上(例如,在回归问题的概率方法中我们会这样做)?
    • 当然你可以做很多参数化的技巧,但是你正在创建关于你的分布的人工假设。而在“纯”概率方法中 - 你没有。您将观察分布“按原样”(如示例中的二项式)并仅估计参数。例如,如果您将线性模型用于估计,那么您就假设了很多变量,并且它与假设独立性的朴素贝叶斯所做的没有本质上的不同。当然,这是一种有效的方法——只是它不再是“纯粹的概率推理”
    【解决方案2】:

    糖果选择

    在孟买郊区,住着一位老奶奶,她对生活的定量看法为她赢得了“统计奶奶”的绰号。她独自住在一座巨大的豪宅里,在那里她练习可靠的统计分析,不受大众媒体和所谓的权威人士所兜售的毫无希望的有缺陷的偏见的影响。

    每年她的生日,她的全家都会来看她,并留在豪宅。儿子,女儿,他们的配偶,她的孙子。每年都会是一场盛大的狂欢,大张旗鼓。但奶奶最喜欢的是见到她的孙子们并和他们一起玩。她总共有十个孙子,都在 10 岁左右,她亲切地称他们为“随机变量”。

    每年,奶奶都会给每个孩子一个糖果。奶奶有一个大盒子,里面装满了十种不同的糖果。她会给每个孩子一颗糖果,因为她不想破坏他们的牙齿。但是,由于她非常爱孩子们,所以她费了很大力气来决定给哪个孩子送哪个糖果,这样才能最大限度地提高他们的总体幸福感(她称之为最大似然估计)。

    但这对奶奶来说并不是一件容易的事。她知道每种糖果都有一定的概率让孩子开心。对于不同的糖果类型和不同的孩子,这个概率是不同的。 Rakesh 更喜欢红色糖果而不是绿色糖果,而 Sheila 更喜欢橙色糖果。

    10 个孩子对 10 种糖果都有不同的喜好。

    此外,他们的偏好很大程度上取决于祖母不知道的外部因素(隐藏变量)。

    如果 Sameer 在去豪宅的路上看到一座蓝色建筑,他会想要蓝色糖果,而 Sandeep 一直想要与他那天衬衫颜色相匹配的糖果。但最大的挑战是他们的幸福取决于其他孩子得到了什么糖果!如果 Rohan 得到一颗红糖,那么 Niyati 也会想要一颗红糖,其他任何事情都会让她在母亲的怀里哭泣(条件依赖)。 Sakshi 一直想要大多数孩子得到的东西(正相关),而如果没有其他人得到他收到的那种糖果, Tanmay 会最开心(负相关)。奶奶很早以前就得出结论,她的孙子孙女是完全相互依赖的。

    对于奶奶来说,正确选择糖果在计算上是一项艰巨的任务。 要考虑的条件太多,她无法简化计算。每年在她生日之前,她都会花几天的时间来找出糖果的最佳分配,方法是一起为所有孩子列举所有糖果的配置(这是一项成倍增加的任务)。她年纪大了,任务越来越难。她过去常常觉得自己会死,然后才能找出让她的孩子们最快乐的糖果的最佳选择。

    但是发生了一件有趣的事情。随着岁月的流逝,孩子们长大了,他们终于从十几岁的时候过去了,变成了独立的成年人。他们的选择变得越来越不依赖于彼此,并且更容易弄清楚每个人最喜欢的糖果是什么(他们都仍然喜欢糖果,还有奶奶)。

    奶奶很快就意识到了这一点,她高兴地开始称它们为“独立随机变量”。对她来说,找出糖果的最佳选择要容易得多——她只需要一次想一个孩子,然后为每个孩子,为该孩子的 10 种糖果类型中的每一种分配一个幸福概率。然后她会为那个孩子挑选幸福概率最高的糖果,而不用担心她会给其他孩子分配什么。这是一个超级简单的任务,奶奶终于能做对了。

    那一年,孩子们终于是最开心的一年,奶奶在百岁生日聚会上玩得很开心。在那一天之后的几个月,奶奶去世了,她的脸上挂着微笑,手里还攥着一本 Sheldon Ross。

    要点:在统计建模中,具有相互依赖的随机变量使得很难找到每个变量的最优值分配,以使每个变量的累积概率最大化放。

    您需要枚举所有可能的配置(变量数量呈指数增长)。但是,如果变量是独立的,则很容易挑选出使每个变量的概率最大化的单个分配,然后将各个分配组合起来以获得整个集合的配置。

    在朴素贝叶斯中,您假设变量是独立的(即使它们实际上不是)。这简化了您的计算,事实证明,在许多情况下,它实际上给出的估计值与您从考虑变量之间的条件依赖关系的更(计算上)昂贵的模型中获得的估计值相当。

    我没有在这个答案中包含任何数学,但希望这可以更容易地掌握朴素贝叶斯背后的概念,并自信地处理数学。 (维基百科页面是一个好的开始:朴素贝叶斯)。

    为什么会“幼稚”?

    朴素贝叶斯分类器假设 X|YX|Y 是正态分布的,XX 的任何分量之间的协方差为零。由于这对于任何实际问题都是完全不可信的假设,因此我们将其称为幼稚。

    朴素贝叶斯会做出以下假设:

    如果你喜欢泡菜,也喜欢冰淇淋,朴素贝叶斯会假设独立,给你一个泡菜冰淇淋,并认为你会喜欢它。

    这可能根本不是真的。

    有关数学示例,请参阅:https://www.analyticsvidhya.com/blog/2015/09/naive-bayes-explained/

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 2011-12-28
      • 2020-03-26
      • 2012-11-28
      • 2013-09-09
      • 2015-01-03
      • 2017-02-09
      • 2018-02-14
      • 2021-09-14
      相关资源
      最近更新 更多