机器学习-贝叶斯网络-笔记

贝叶斯网络描述:

  1)贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directedacyclic graphical model),是一种概率图模型,是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。考察一组随机变量{X1,X2...Xn}及其n组条件概率分布(Conditional Probability Distributions, CPD)的性质。

  2)一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,或隐变量、未知参数等。连接两个节点的箭头代表此两个随机变量是具有因果关系(或非条件独立)。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。

  3)每个结点在给定其直接前驱时,条件独立于其非后继。

一个简单的贝叶斯网络:

  p(a,b,c) = p(c|a,b)p(b|a)p(a)

  对应的有向无环图:

  

全连接贝叶斯网络:

  每一对结点之间都有边连接

  p(x1,...,xk)=p(xk|x1,...,xk-1)...p(x2|x1)p(x1)

  

一个“正常”的贝叶斯网络:

  

  1)有些边缺失

  2)直观上:x1和x2独立,x6和x7在x4给定的条件下独立

  3)x1,x2,…x7的联合分布:

  p(x1)p(x2)p(x3)p(x4|x1,x2,x3)p(x5|x1,x3)p(x6|x4)p(x7|x4,x5)

贝叶斯网络的3种结构形式:

  先引入D-分离(D-Separation)的概念:是一种用来判断变量是否条件独立的图形化方法。即对于一个DAG(有向无环图)E,D-Separation方法可以快速的判断出两个节点之间是否是条件独立的。

形式1:head-to-head

  贝叶斯网络的第一种结构形式:

  

  P(a,b,c) =P(a)*P(b)*P(c| a,b)

  

  →P(a,b)=P(a)*P(b)

  在c未知的条件下,a,b被阻断(blocked)是独立的

形式2:tail-to-tail

  

  根据图模型,得:P(a,b,c)=P(c)*P(a|c)*P(b|c)
       从而: P(a,b,c)/P(c)= P(a|c)*P(b|c)
    因为 P(a,b|c)=P(a,b,c)/P(c)
       得:P(a,b|c)=P(a|c)*P(b|c)
       即:在c给定的条件下,
      a,b被阻断(blocked)是独立的

形式3:head-to-tail

  

  P(a,b,c)=P(a)*P(c|a)*P(b|c)

  即:在c给定的条件下,a,b被阻断(blocked),是独立的。

 

朴素贝叶斯:

1) 朴素贝叶斯的假设

  一个特征出现的概率,与其他特征(条件)独立(特征独立性),其实是:对于给定分类的条件下,特征独立

  每个特征同等重要(特征均衡性)

2) 朴素贝叶斯的推导

  朴素贝叶斯(Naive Bayes,NB)是基于“特征之间是独立的”这一朴素假设,应用贝叶斯定理的监督学习算法

  对于给定的特征向量x1,x2,...,xn

  类别y的概率可以根据贝叶斯公式得到:

  

  使用朴素的独立性假设:

  P(xi|y,x1,...,xi-1,xi+1,...,xn)=P(xi|y)

  类别y的概率可简化为:

   

  在给定样本的前提下,P(x1,x2,...,xn) 是常数:

  

  从而:

  

高斯朴素贝叶斯Gaussian Naive Bayes:

  根据样本使用MAP(Maximum A Posteriori 极大后验估计)估计 P(y),建立合理的模型估计P(xi|y) ,从而得到样本的类别。
  
  假设特征服从高斯分布,即:

  

  参数使用MLE(极大似然估计)估计即可。

多项分布朴素贝叶斯Multinomial Naive Bayes:

  假设特征服从多项分布,从而,对于每个类别y,参数为θy=(θy1y2,...,θyn),其中n为特征的数目,P(xi|y)的概率为θyi

  参数 使用MLE估计的结果为: 

   

  假定训练集为T,有:

    

  其中,α=1称为Laplace平滑,α<1称为Lidstone平滑。

拉普拉斯Laplace平滑  

  p(x1|c1)是指的:在垃圾邮件c1这个类别中,单词x1出现的概率。
      x1是待考察的邮件中的某个单词定义符号
      n1:在所有垃圾邮件中单词x1出现的次数。如果x1没有出现过,则n1=0。
      n:属于c1类的所有文档的出现过的单词总数目。

  得到公式:p(x1|c1)=n1/n

  拉普拉斯平滑:p(x1|c1)=(n1+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向量
     如何判断两个文档的距离
       夹角余弦

   如何给定合适的超参数: 

  

    交叉验证

posted @ 2019-10-06 11:28  yg_staring  阅读(728)  评论(0编辑  收藏  举报