条件概率:
全概率公式:
贝叶斯(Bayes)公式:
朴素贝叶斯的假设
1.一个特征出现的概率,与其他特征(条件)独立(特征独立性)-------对于给定分类的条件下,特征独立
2.每个特征同等重要(特征均衡性)
---------------七月在线机器学习笔记
以文本分类为例:
样本:1000封邮件,每个邮件被标记为垃圾邮件或者非垃圾邮件
分类目标:给定第1001封邮件,确定它是垃圾邮件还是非垃圾邮件
方法:朴素贝叶斯
类别c:垃圾邮件c1,非垃圾邮件c2
词汇表,两种建立方法:
1.使用现成的单词词典;
2.将所有邮件中出现的单词都统计出来,得到词典。
记单词数目为N
#一般采用第一种直接对所有(常用)单词进行one-hot编码,即将每个邮件m映射成维度为N的向量x
若单词wi在邮件m中出现过,则xi=1,否则,xi=0。即邮件的向量化:m ——>(x1,x2……xN)
贝叶斯公式:P(c|x)=P(x|c)*P(c) / P(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|c)=P(x1|c)*P(x2|c)…P(xN|c)
特征条件独立假设
P(x)=P(x1,x2…xN)=P(x1)*P(x2)…P(xN)
特征独立假设
带入公式: P(c|x)=P(x|c)*P(c) / P(x)
等式右侧各项的含义:
P(xi|cj):在cj(此题目,cj要么为垃圾邮件1,要么为非垃圾邮件2)的前提下,第i个单词xi出现的概率
P(xi):在所有样本中,单词xi出现的概率
P(cj) :在所有样本中,邮件类别cj出现的概率
拉普拉斯平滑
p(x1|c1)是指的:在垃圾邮件c1这个类别中,单词x1出现的概率。
x1是待考察的邮件中的某个单词
定义符号
n1:在所有垃圾邮件中单词x1出现的次数。如果x1没有出现过,则n1=0。
n:属于c1类的所有文档的出现过的单词总数目。
得到公式:
拉普拉斯平滑:
其中,N是所有单词的数目。修正分母是为了保证概率和为1
同理,以同样的平滑方案处理p(x1)
对朴素贝叶斯的思考
拉普拉斯平滑能够避免0/0带来的算法异常
因为要比较的是P(c1|x)和P(c2|x) 的相对大小,而根据公式P(c|x) =P(x|c)*P(c) / P(x),二者的分母都是除以P(x),实践时可以不计算该系数。
编程的限制:小数乘积下溢出怎么办?----------------取对数可以避免该问题
问题:一个词在样本中出现多次,和一个词在样本中出现一次,形成的词向量相同----------------由0/1改成计数
如何判断两个文档的距离-----------------夹角余弦(TF-IDF)
如何判定该分类器的正确率-------------样本中:K个生成分类器,1000-K个作为测试集--------------交叉验证
贝叶斯网络
把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。
贝叶斯网络(Bayesian Network),又称有向无环图模型(directed acyclic graphical model),是一种概率图模型,借由有向无环图(Directed Acyclic Graphs, DAG)中得知一组随机变量{X1,X2...Xn}及其n组条件概率分布(Conditional Probability Distributions, CPD)的性质。
一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,或隐变量、未知参数等。连接两个节点的箭头代表此两个随机变量是具有因果关系(或非条件独立)。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。
每个结点在给定其直接前驱时,条件独立于其非后继
一个简单的贝叶斯网络
全连接贝叶斯网络--每一对结点之间都有边连接
一个“正常”的贝叶斯网络
有些边缺失
直观上:
x1和x2独立
x6和x7在x4给定的条件下独立
x1,x2,…x7的联合分布:
对一个实际贝叶斯网络的分析
实际参数数量:1+2+2+4+4=13 vs 32=2^5
特殊的贝叶斯网络
M个离散结点形成一条链,每一个结点有K个状态,则需要K-1+(M-1)K(K-1)个参数。这是关于长度M的线性函数。
别忘了,如果是全连接,需要个参数,是关于M的指数函数。
这个网络被称作马尔科夫模型。
通过贝叶斯网络判定条件独立—1
通过贝叶斯网络判定条件独立—2
通过贝叶斯网络判定条件独立—3
举例:
将上述结点推广到结点集
D-separation:有向分离
对于任意的结点集A,B,C,考察所有通过A中任意结点到B中任意结点的路径,若要求A,B条件独立,则需要所有的路径都被阻断(blocked),即满足下列两个前提之一:
1. A和B的“head-to-tail型”和“tail-to-tail型”路径都通过C;
2.A和B的“head-to-head型”路径不通过C以及C的子孙;
如果A,B不满足D-separation,A,B有时被称为D-connected.
举例:
Gas和Radio是独立的吗?给定Battery呢?Ignition呢?Starts呢?Moves呢?(答:IIIDD)--Independence,Dependence
再次分析链式网络
有D-separation可知,在xi给定的条件下,xi+1的分布和x1,x2…xi-1条件独立。即:xi+1的分布状态只和xi有关,和其他变量条件独立,这种顺次演变的随机过程模型,叫做马尔科夫模型。
Markov Blanket
一个结点的Markov Blanket是一个集合,在这个集合中的结点都给定的条件下,该结点条件独立于其他所有结点。
即:一个结点的Markov Blanket是它的parents,children以及spouses(孩子的其他parent)
贝叶斯网络的用途
诊断:P(病因|症状)
预测:P(症状|病因)
分类:maxclassP(类别|数据)
通过给定的样本数据,建立贝叶斯网络的拓扑结构和结点的条件概率分布参数。这往往需要借助先验知识和极大似然估计来完成。
在贝叶斯网络确定的结点拓扑结构和条件概率分布的前提下,可以使用该网络,对未知数据计算条件概率或后验概率,从而达到诊断、预测或者分类的目的。
贝叶斯网络的推导
计算过程:d,b,x,c,s为对应英文缩写
即求p(s,d=1,x,b,c)的联合概率,并积分掉d=1,x,b,c,得到结果,对其它条件同理
因子图的构造
因子图
由贝叶斯网络得到因子图(Factor Graph)
通过在因子图中消息传递的思想,计算概率
图中=号表示与其相连的为同一个变量(如下图的X)
由贝叶斯网络构造因子图的方法:
一个因子对应因子图中的一个结点
贝叶斯网络中的每一个变量在因子图上对应边或者半边
结点g和边x相连当且仅当变量x出现在因子g中
举例
马尔科夫模型
隐马尔科夫模型
上述贝叶斯网络的因子图
边缘分布:由联合概率分布求边缘概率分布
分配率:
如果有,
那么
举例:
提取公因子:即“分配率”
使用“消息传递”的观点
Sum-Product算法
从计算来看, Sum-Product算法是将计算需要的中间过程进行了保存。如果计算多个概率分布,往往更有效。
Sum-Product算法有点类似动态规划的思想:将一个概率分布写成两个因子的乘积,而这两个因子可以继续分解或者通过已知得到。
无向环
可以发现,若贝叶斯网络中存在“环”(无向),则因此构造的因子图会得到环。
而使用消息传递的思想,这个消息将无限传输下去,不利于概率计算。
解决方法:
删除贝叶斯网络中的若干条边,使得它不含有无向环
重新构造没有环的贝叶斯网络
原贝叶斯网络的近似树结构
最大权生成树MSWT(Maximum-weight spanning tree)的建立过程
1. 对于给定的分布P(x),对于所有的i≠j,计算联合分布P(xi,xj);
2.使用第1步得到的概率分布,计算任意两个结点的互信息,并把作为这两个结点连接边的权值;
3.计算最大权生成树(Maximum-weight spanning tree)
a. 初始状态:n个变量(结点),0条边
b. 插入最大权重的边
c. 找到下一个最大的边,并且加入到树中;要求加入后,没有环生成。否则,查找次大的边;
d. 重复上述过程c过程直到插入了n-1条边(树建立完成)
4. 选择任意结点作为根,从根到叶子标识边的方向;
5. 可以保证,这课树的近似联合概率P'(x)和原贝叶斯网络的联合概率P(x)的相对熵最小。