朴素贝叶斯分类要点:
- 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
- 贝叶斯决策理论方法基本思想:(主要是使用先验概率来计算后验概率,并尽可能使后验最大化)
1、已知类条件概率密度参数表达式和先验概率。
2、利用贝叶斯公式转换成后验概率。
3、根据后验概率大小进行决策分类。
- 朴素贝叶斯分类器通过训练数据集学习联合概率分布#card=math&code=P%28X%2CY%29&id=E2IcY),来估计给定文档的类别概率
先验概率P(X):先验概率是指根据历史经验得出来的概率 后验概率P(X|Y):事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小
朴素贝叶斯法
朴素贝叶斯法 = 贝叶斯定理 + 特征条件独立.
设待分类文档 Doc 的属性集为 ,其中输入空间是n维向量集合,输出空间. 所有的和都是对应空间上的随机变量.
%2C(x_2%2Cy_2)%2C…%2C(x_N%2Cy_N)%5C%7D%0A#card=math&code=T%3D%5C%7B%28x_1%2Cy_1%29%2C%28x_2%2Cy_2%29%2C…%2C%28x_N%2Cy_N%29%5C%7D%0A&id=rI23G)
假设我们有这样的数据集怎么进行朴素贝叶斯算法学习呢?
首先根据贝叶斯公式:
%3D%5Cfrac%7BP(X%3Dx%7CY%3Dck)P(Y%3Dc_k)%7D%7B%5Csum%7Bk%7DP(X%3Dx%7CY%3Dck)P(Y%3Dc_k)%7D%20%5Ctag%7B2%7D%0A#card=math&code=P%28Y%3Dc_k%7CX%3Dx%29%3D%5Cfrac%7BP%28X%3Dx%7CY%3Dc_k%29P%28Y%3Dc_k%29%7D%7B%5Csum%7Bk%7DP%28X%3Dx%7CY%3Dc_k%29P%28Y%3Dc_k%29%7D%20%5Ctag%7B2%7D%0A&id=Jcx2r)
其中的后验概率可展开为:
%3DP(X%5E%7B(1)%7D%3Dx%5E%7B(1)%7D%2CX%5E%7B(2)%7D%3Dx%5E%7B(2)%7D%2C…%2CX%5E%7B(n)%7D%3Dx%5E%7B(n)%7D%7CY%3Dc_k)%2C%20k%3D1%2C2%2C..%2CK%20%5Ctag%7B3%7D%0A#card=math&code=P%28X%3Dx%7CY%3Dc_k%29%3DP%28X%5E%7B%281%29%7D%3Dx%5E%7B%281%29%7D%2CX%5E%7B%282%29%7D%3Dx%5E%7B%282%29%7D%2C…%2CX%5E%7B%28n%29%7D%3Dx%5E%7B%28n%29%7D%7CY%3Dc_k%29%2C%20k%3D1%2C2%2C..%2CK%20%5Ctag%7B3%7D%0A&id=TslVH)
从公式3中,我们看到这里有”无数”的参数,很难进行直接估计计算。
为此,我们引入条件独立性假设(假设各个特征之间相互独立,也即“朴素”一词的含义):
我们将公式4带入公式2中,得到朴素贝叶斯分类器:
分母对所有都相同,所以:
%5Cprod%7Bj%7DP(X%5E%7B(j)%7D%3Dx%5E%7B(j)%7D%7CY%3Dc_k)%20%5Ctag%7B5%7D%0A#card=math&code=y%3Darg%20max%7Bck%7DP%28Y%3Dc_k%29%5Cprod%7Bj%7DP%28X%5E%7B%28j%29%7D%3Dx%5E%7B%28j%29%7D%7CY%3Dck%29%20%5Ctag%7B5%7D%0A&id=Pwp5U)
注意:![](https://cdn.nlark.com/yuque/__latex/ebdb117a243d933b83f29aa87f774952.svg#card=math&code=argmax%7Bck%7D&id=yYoWi)的含义是,使得取最大值时的取值.
由公式(5)可知,只要计算%7D%3Dx%5E%7B(j)%7D%7CY%3Dc_k)#card=math&code=P%28X%5E%7B%28j%29%7D%3Dx%5E%7B%28j%29%7D%7CY%3Dc_k%29&id=wh7PC)和#card=math&code=P%28Y%3Dc_k%29&id=kWTzy)两个参数就行了,我们采用极大似然估计法估计相应的概率,这就是贝叶斯法的参数估计(下一节)。
参数估计
一般使用极大似然估计法进行相应的概率估计.
先验概率#card=math&code=P%28Y%3Dc_k%29&id=vTBZs)的极大似然估计是:
%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI(y_i%3Dc_k)%7D%7BN%7D%2C%20k%3D1%2C2%2C…%2CK%20%5Ctag%7B6%7D%0A#card=math&code=P%28Y%3Dc_k%29%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI%28y_i%3Dc_k%29%7D%7BN%7D%2C%20k%3D1%2C2%2C…%2CK%20%5Ctag%7B6%7D%0A&id=xfTem)
我们先设第j个特征%7D#card=math&code=x%5E%7B%28j%29%7D&id=VJ42G)可能取值集合为,
条件概率的极大似然估计是:
%7D%3Dx%5E%7B(j)%7D%7CY%3Dck)%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI(xi%5Ej%3Da%7Bjl%7D%2Cyi%3Dc_k)%7D%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI(yi%3Dc_k)%7D%20%5Ctag%7B7%7D%0A#card=math&code=P%28X%5E%7B%28j%29%7D%3Dx%5E%7B%28j%29%7D%7CY%3Dc_k%29%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI%28xi%5Ej%3Da%7Bjl%7D%2Cyi%3Dc_k%29%7D%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI%28y_i%3Dc_k%29%7D%20%5Ctag%7B7%7D%0A&id=BuzlO)
我们可以看到,基于数据估计的参数,将公式6和7带入公式5就得到了朴素贝叶斯分类器。本来我们是应该结束了,但是如果先验概率和条件概率,任何一个为0的话,整个估计的乘积就都是0了。所有我们需要防止这个情况出现,就出现了贝叶斯估计。(下一节)
贝叶斯估计
为了解决零概率的问题,引入Laplace校准(也即拉普拉斯平滑),它的思想非常简单,就是对每个类别下所有划分的计数加,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。引入拉普拉斯平滑的公式如下:
%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI(y_i%3Dc_k)%2B%5Clambda%7D%7BN%2BK%20%5Clambda%7D%2C%20k%3D1%2C2%2C…%2CK%20%5Ctag%7B8%7D%0A#card=math&code=P%28Y%3Dc_k%29%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI%28y_i%3Dc_k%29%2B%5Clambda%7D%7BN%2BK%20%5Clambda%7D%2C%20k%3D1%2C2%2C…%2CK%20%5Ctag%7B8%7D%0A&id=qTx26)
%7D%3Dx%5E%7B(j)%7D%7CY%3Dck)%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI(xi%5Ej%3Da%7Bjl%7D%2Cyi%3Dc_k)%2B%5Clambda%7D%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI(yi%3Dc_k)%2BS_j%5Clambda%7D%20%5Ctag%7B9%7D%0A#card=math&code=P%28X%5E%7B%28j%29%7D%3Dx%5E%7B%28j%29%7D%7CY%3Dc_k%29%3D%5Cfrac%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI%28xi%5Ej%3Da%7Bjl%7D%2Cyi%3Dc_k%29%2B%5Clambda%7D%7B%5Csum%7Bi%3D1%7D%5E%7BN%7DI%28y_i%3Dc_k%29%2BS_j%5Clambda%7D%20%5Ctag%7B9%7D%0A&id=BbbTj)
我们可以看出就是对每一个变量的多加了一个频数. 当时,就是极大似然估计. 通常取值,这就是拉普拉斯平滑(Laplace smoothing). 显然这样的话所有的估计值都是正数,而且不会改变之前的序关系.
总结
朴素贝叶斯法简单好用,计算量小,文本分类经常使用. 而且是贝叶斯网络的基础,还有就是强大的贝叶斯定理,它可以解释任何的机器学习的程度(可能是一句玩笑,哈哈).