贝叶斯方法

1、公式

p( Y | X ) = P( X | Y) * P(Y) / P(X)

P(Y,X) = P(Y|X)*P(X) = p(X|Y)*P(Y)

P(Y):先验概率   P(Y|X):后验概率   P(Y,X):联合概率

机器学习中将X看作特征,Y看作类别,即求具有某特征的前提下,求出属于某类别的概率

例子:垃圾邮件识别

判断P(垃圾邮件|具有某特征)是否大于0.5?

训练样本:一万封正常邮件,一万封垃圾邮件

条件独立假设:P( x|c) = P(x1, x2,...,xn | c) = P(x1|c) * P(x2|c) * ... * P(xn|c)

加上条件独立假设的贝叶斯方法就是朴素贝叶斯方法

假设邮件内容为abc,先求P(垃圾邮件|abc)和P(正常邮件|abc)按照贝叶斯公式展开求比值,展开后分母相同,即求:

P(abc|垃圾邮件)* P(垃圾邮件)和P(abc|正常邮件)* P(正常邮件)的比值

根据条件独立假设:p(a|垃圾邮件),p(b|垃圾邮件),p(c|垃圾邮件)的乘积等于P(abc|垃圾邮件)

而p(a|垃圾邮件)只需要在训练样本中的垃圾邮件计算 单词a出现的次数/所有词的个数,p(垃圾邮件)= 训练样本中垃圾邮件的个数/训练样本中总邮件个数

朴素贝叶斯的三种模型

1、多项式模型

将重复的词语视为出现多次 

2、伯努利模型

将重复出现的词语 视为只出现一次,模型简单,但是丢失词频,效果可能会差

3、混合模型 

训练阶段不考虑单词出现次数,测试阶段考虑单词出现次数,模型简单,但是丢失词频,效果可能会差

平滑技术(关于测试集未出现词语概率增加,导致已出现词语概率降低,怎么权衡的问题)

拉普拉斯平滑

对于训练集没有出现过的单词。

多项式模型:p(a|垃圾邮件)= 每封垃圾邮件中出现“a”的次数总和+1 / (每封垃圾邮件中所有词出现次数之和+被统计的词语总和)

确保分子之和和分母相等。比如有词典里有1000个词,测试集出现了10个新词。那么分母就是训练样本中所有词的总和+1000+10。加1000是由于计算字典里出现的词时,分子也加1了。

伯努利模型:p(a|垃圾邮件)= 训练样本中出现“a”的样本数+1/(每个训练样本中所有词出现次数(重复只算1次)之和+2)   (拉普拉斯平滑)

古德图灵平滑

线性插值法

回退法

原文地址:https://www.cnblogs.com/crazybird123/p/7499955.html