没有朴素假设的朴素贝叶斯

10

我试图理解为什么朴素贝叶斯分类器在特征数目增加时具有线性可扩展性,相比于没有朴素假设的同样想法。我了解分类器如何工作以及其中何为“朴素”,但我不清楚为什么朴素假设能够给我们带来线性扩展性,而去掉该假设则会导致指数级复杂度。我正在寻找一个示例,通过该示例可以展示这个算法在“朴素”设置下呈现出线性复杂度,并且在没有该假设的情况下呈现出指数复杂度。

2个回答

16

这里的问题在于以下数量

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只是"true"或"false"(事件发生或未发生),这已经给出了2^n个概率估计(每个可能的将"true"和"false"分配给一系列n布尔变量)。因此,算法复杂度呈指数增长。然而,最大的问题通常不是计算上的问题,而是缺乏数据。由于有2^n种概率需要估计,您需要超过2^n个数据点才能对所有可能的事件进行任何估计。在现实生活中,您永远不会遇到大小为10,000,000,000,000个点的数据集......这是使用这种方法需要的40个特征所需的(唯一!)点数。


有道理,但为什么我们还要陷在估计2^n个单独概率的问题中呢?是什么阻止我们只需在联合分布上放置一个单一模型,带有一些线性(甚至是有限的)参数(例如,在回归问题的概率方法中所做的那样)? - dkv
2
当然,你可以使用许多参数技巧,但这样你就会对分布做出人为的假设。在“纯”概率方法中,你不会这样做。你将观察到的分布“原封不动”地采取(例如二项式),并估计参数。如果你为估计设置线性模型,那么你就会对变量做出很多假设,这与朴素贝叶斯通过假设独立性所做的假设没有本质区别。当然,这是一种有效的方法,只是它不再是“纯粹的概率推理”。 - lejlot

7

糖果选择

在孟买郊区住着一位老奶奶,她对生活有着量化的看法,因此被称为“统计奶奶”。她独自住在一个巨大的豪宅中,进行严谨的统计分析,远离大众媒体和所谓的专家们无望的偏见。

每年在她的生日那天,她的整个家庭都会来到她的豪宅并住下。儿子、女儿、他们的配偶和孙子孙女们。每年都会有很多的喧闹和热闹。但是奶奶最喜欢的是与孙子孙女们相聚并和他们玩耍。她总共有十个孙子孙女,他们都约10岁左右,奶奶会亲切地称呼他们为"随机变量"。

每年,奶奶会给每个孩子一颗糖果。奶奶有一个装满了十种不同糖果的大盒子。她会给每个孩子一颗糖果,因为她不想毁了他们的牙齿。但是,由于她非常爱孩子们,她会花费很大的精力来决定给哪个孩子哪种糖果,以使他们的总幸福感最大化(就像她所说的最大似然估计)。

但这对奶奶来说并不容易。她知道每种糖果让孩子开心的概率是不同的,而且对于不同的糖果和不同的孩子也是不同的。Rakesh喜欢红色的糖果,而不是绿色的;而Sheila则最喜欢橙色的。

每个10个孩子对10种糖果都有不同的偏好

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

如果Sameer在去豪宅的路上看到了一栋蓝色的建筑物,他会想要一颗蓝色的糖果,而Sandeep则总是想要与当天衬衫颜色相匹配的糖果。但最大的挑战是他们的幸福感取决于其他孩子得到了什么糖果!如果Rohan得到了一颗红色的糖果,那么Niyati也会想要一颗红色的糖果,否则她会哭着跑到母亲的怀里(条件依赖性)。Sakshi总是想要大多数孩子得到的糖果(正相关),而Tanmay则会在没有其他人得到他所得到的糖果时感到最幸福(负相关)。奶奶早就得出结论,她的孙子孙女们是完全相互依赖的。

对于奶奶来说,正确地选择糖果是一个很大的计算任务。有太多的条件需要考虑,她无法简化计算。每年在她生日前,

但是有趣的事情发生了。随着岁月的流逝和孩子们的成长,他们终于从青少年走向独立的成年人。他们的选择越来越不依赖彼此,更容易弄清楚每个人最喜欢的糖果是什么(他们仍然喜欢糖果和奶奶)。
奶奶很快意识到这一点,她高兴地开始称呼他们为“独立随机变量”。对于她来说,找出最佳的糖果选择变得更加容易 - 她只需要一个一个地考虑孩子,针对每个孩子,为该孩子的10种糖果类型分配一种幸福概率。然后,她会选择对每个孩子幸福概率最高的糖果,而不用担心其他孩子应该选什么。这是非常简单的任务,奶奶终于做对了。
那一年,孩子们终于在同一时间内最幸福了,奶奶在她100岁的生日聚会上度过了愉快的时光。几个月后,在那一天之后,奶奶带着微笑和Sheldon Ross的副本离开了人世。
重点:在统计建模中,相互依赖的随机变量使得找到每个变量的最优值分配以最大化集合的累积概率变得非常困难。
你需要枚举所有可能的配置(随着变量数量的指数增加)。但是,如果变量是独立的,很容易挑选出每个变量最大化概率的单独分配,然后将这些单独分配组合起来得到整个集合的配置。
在朴素贝叶斯中,假设变量是独立的(即使它们实际上并不是)。这简化了计算,并且在许多情况下,它实际上给出了可比较于考虑变量之间条件依赖的更(计算上)昂贵的模型获得的估计值。
我没有在这个答案中包含任何数学内容,但希望这样更容易理解朴素贝叶斯背后的概念,并有信心接近数学。 (维基百科页面是一个好的开始:朴素贝叶斯)。
为什么“朴素”?
朴素贝叶斯分类器假设X|YX|Y服从正态分布,并且XX的任何组成部分之间没有协方差。由于这对于任何真实问题都是完全不可行的假设,因此我们称之为朴素。
朴素贝叶斯将做出以下假设:
如果你喜欢泡菜,你喜欢冰淇淋,朴素贝叶斯将假定独立并给你一杯泡菜冰淇淋,并认为你会喜欢它。
这可能完全不正确。

数学例子请参考:https://www.analyticsvidhya.com/blog/2015/09/naive-bayes-explained/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接