贝叶斯算法笔记

来源:互联网 发布:富途证券招聘网络销售 编辑:程序博客网 时间:2024/06/06 19:55

通常情况下,贝叶斯分类器最适合于解决一类问题:为了估计一个结果的总概率。从众多属性中提取的信息应该被同时考虑。尽管很多机器学习算法忽略了具有弱影响的一些特征,但是贝叶斯方法利用了所有可以获得的证据来巧妙的修正预测。如果有大量特征产生的影响较小,但将他们放在一起,它们的组合影响可能会很大。

1、贝叶斯概率公式

这里写图片描述
理解贝叶斯公式还要理解一些与贝叶斯相关的概念。
先验概率:利用数据计算得到的先验概率,称为客观先验概率;当无法从数据中获取先验概率,凭人们的主观经验来判断而得到的先验概率称为主观概率。上面的式子中P(Bi)就是先验概率。
边际似然概率:事件A出现的概率P(A)称为边际似然概率。
似然:是根据已知结果去推导固有性质的可能性(likelihood),是对固有性质的拟合程度。上面式子中P(A|Bi)就是似然。
后验概率:由“果”推“因”的概率。上面式子中P(Bi|A)就是后验概率
所以贝叶斯公式还可以这样表示:

后验概率=似然*先验概率/边际似然概率

一个贝叶斯公式应用的例子:
这里写图片描述

2、朴素贝叶斯的假设

朴素贝叶斯的假设满足以下两个条件:
(1)一个特征出现的概率与其他特征独立(特征的独立性)
(2)每一个特征同等重要(特征均衡性)
3、朴素贝叶斯分类器(Naive Baysian classifier)
以文本分类为例:样本为1000封的邮件,每个邮件都被标记为垃圾邮件或者非垃圾邮件。使用朴素贝叶斯分类器对1001封邮件进行分类。
设邮件类别C:垃圾邮件C1,非垃圾邮件C2。对词汇表,有两种建立方法:将所有的邮件中出现的单词统计出来,得到一个词典。并记单词数目为N。这样将每一封邮件m映射成维度为N的向量X。若单词Wi在邮件m中出现过,则Xi=1,否则Xi=0.既可以得到一个向量m->(X1,X2…XN)。根据贝叶斯公式:P(C|X)=P(X|C)*P(C)/P(X)。对于式子P(C|X)有P(C1|X)=P(X|C1)*P(C1)/P(X),P(C2|X)=P(X|C2)*P(C2)/P(X),注意这里X是向量。对于式子P(X|C)=P(X1,X2…XN)=P(X1|C)*P(X2|C)…P(XN|C),由特征条件独立假设P(X)=P(X1,X2…XN)=P(X1)*P(X2)…P(XN),将以上的分解后的式子带入贝叶斯公式,就完成了对模型的训练。

3、拉普拉斯平滑

由于贝叶斯公式是一个除法表达式,所以应该考虑到特殊的情况。P(X1|C1)是指:在垃圾邮件C1这个类别中单词X1出现的概率。设n1为所有的邮件中单词X1出现的次数。如果X1没有出现过则n1=0。n属于C1类的所有文档的出现过的单词总数目。在贝叶斯算法中,一般使用频率来代替概率,因此P(X1|C1)=n1/n,考虑n1=0的情况,则此时P(X1|C1)=0/n=0,所以对于整个贝叶斯表达式来说,正是因为这个导致其他单词的作用也为0了。这个是不合理的,因此引入拉普拉斯平滑:

这里写图片描述

其中,N是所有单词的数目。修正分母是为了概率和为1,。
同理,以相同的平滑方案处理P(X)。

4、对朴素贝叶斯的思考

(1)拉普拉斯平滑能够避免0/0带来的算法异常。
(2)编程的限制:小数乘积下溢出怎么办?乘积取log。
(3)问题:一个词在样本中出现多次,和一个词在样本中出现一次,形成的词向量相同?由0/1改成计数。
(4)如何判断两个文档的距离?夹角余弦
(5)如何判断该分类器的正确率?
样本中:K个生成分类器,1000-K个作为测试集
交叉验证

5、贝叶斯算法的优缺点

优点:简单、快速、有效。能很好地处理噪声数据和缺失数据,需要训练的案例少,但同样能很好地对大量的案例。很容易得到一个预测的估计概率值。
缺点:依赖于一个常用的错误的假设,即一样的重要坐标和独立特征。应用在含大量数值特征的数据集时并不理想。概率的估计值比预测的类更不可靠。
朴素贝叶斯假设数据集的所有特征都具有相同的重要性和独立性,而在大多数的实际应用中,这些假设是不成立的。

原创粉丝点击