这里的问题在于以下数量
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个特征所需的(唯一!)点数。
糖果选择
在孟买郊区住着一位老奶奶,她对生活有着量化的看法,因此被称为“统计奶奶”。她独自住在一个巨大的豪宅中,进行严谨的统计分析,远离大众媒体和所谓的专家们无望的偏见。
每年在她的生日那天,她的整个家庭都会来到她的豪宅并住下。儿子、女儿、他们的配偶和孙子孙女们。每年都会有很多的喧闹和热闹。但是奶奶最喜欢的是与孙子孙女们相聚并和他们玩耍。她总共有十个孙子孙女,他们都约10岁左右,奶奶会亲切地称呼他们为"随机变量"。
每年,奶奶会给每个孩子一颗糖果。奶奶有一个装满了十种不同糖果的大盒子。她会给每个孩子一颗糖果,因为她不想毁了他们的牙齿。但是,由于她非常爱孩子们,她会花费很大的精力来决定给哪个孩子哪种糖果,以使他们的总幸福感最大化(就像她所说的最大似然估计)。
但这对奶奶来说并不容易。她知道每种糖果让孩子开心的概率是不同的,而且对于不同的糖果和不同的孩子也是不同的。Rakesh喜欢红色的糖果,而不是绿色的;而Sheila则最喜欢橙色的。
每个10个孩子对10种糖果都有不同的偏好。
此外,他们的偏好很大程度上取决于奶奶不知道的外部因素(隐藏变量)。
如果Sameer在去豪宅的路上看到了一栋蓝色的建筑物,他会想要一颗蓝色的糖果,而Sandeep则总是想要与当天衬衫颜色相匹配的糖果。但最大的挑战是他们的幸福感取决于其他孩子得到了什么糖果!如果Rohan得到了一颗红色的糖果,那么Niyati也会想要一颗红色的糖果,否则她会哭着跑到母亲的怀里(条件依赖性)。Sakshi总是想要大多数孩子得到的糖果(正相关),而Tanmay则会在没有其他人得到他所得到的糖果时感到最幸福(负相关)。奶奶早就得出结论,她的孙子孙女们是完全相互依赖的。
对于奶奶来说,正确地选择糖果是一个很大的计算任务。有太多的条件需要考虑,她无法简化计算。每年在她生日前,
数学例子请参考:https://www.analyticsvidhya.com/blog/2015/09/naive-bayes-explained/