贝叶斯网络

条件概率:

\large \large P(A|B)=\frac{P(A,B)}{P(B)}

全概率公式:

\large P(A)=\sum_iP(A|B_i)P(B_i)

贝叶斯(Bayes)公式:

\large P(B_i|A)=\frac{P(A|B_i)P(B_i)}{\sum_jP(A|B_j)P(B_j)}

朴素贝叶斯的假设

           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类的所有文档的出现过的单词总数目。
             得到公式:

                             \LARGE p(x_1|c_1)=\frac{n_1}{n}

             拉普拉斯平滑:

                            \LARGE p(x_1|c_1)=\frac{n_1+1}{n+N}

                           其中,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的线性函数
       别忘了,如果是全连接,需要\large K^M-1个参数,是关于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中

举例

马尔科夫模型

隐马尔科夫模型

 

上述贝叶斯网络的因子图

边缘分布:由联合概率分布求边缘概率分布

         

       分配率:

        如果有\large f(x_1,...,x_n)=f_1(x_1)f_2(x_2)...f_n(x_n)

        那么

举例:

提取公因子:即“分配率”

使用“消息传递”的观点

Sum-Product算法

从计算来看, Sum-Product算法是将计算需要的中间过程进行了保存。如果计算多个概率分布,往往更有效。


Sum-Product算法有点类似动态规划的思想:将一个概率分布写成两个因子的乘积,而这两个因子可以继续分解或者通过已知得到。

无向环

可以发现,若贝叶斯网络中存在“环”(无向),则因此构造的因子图会得到环。

而使用消息传递的思想,这个消息将无限传输下去,不利于概率计算。
解决方法:
       删除贝叶斯网络中的若干条边,使得它不含有无向环
       重新构造没有环的贝叶斯网络

原贝叶斯网络的近似树结构

\large D(P,P')=\sum_xP(x)log\frac{P(x)}{P'(x)}

最大权生成树MSWT(Maximum-weight spanning tree)的建立过程

      \large I(X_i;X_j)=\sum_{x_i,x_j}p(x_i,x_j)log\frac{P(x_i,x_j)}{P(x_i)P(x_j)},i\neq j

       1. 对于给定的分布P(x),对于所有的i≠j,计算联合分布P(xi,xj);
       2.使用第1步得到的概率分布,计算任意两个结点的互信息\large I(X_i,X_j),并把\large I(X_i,X_j)作为这两个结点连接边的权值;
       3.计算最大权生成树(Maximum-weight spanning tree)
              a. 初始状态:n个变量(结点),0条边
              b. 插入最大权重的边
              c. 找到下一个最大的边,并且加入到树中;要求加入后,没有环生成。否则,查找次大的边;
              d. 重复上述过程c过程直到插入了n-1条边(树建立完成)
      4. 选择任意结点作为根,从根到叶子标识边的方向;
      5. 可以保证,这课树的近似联合概率P'(x)和原贝叶斯网络的联合概率P(x)的相对熵最小。

 

 

 

 

 

 

 

 

             

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值