机器学习之贝叶斯网络

在了解贝叶斯网络之前,需要了解上一篇博文中的熵和相对熵的概念,请读者务必阅读,方便后续内容的理解。

1.这里先补充一下对相对熵应用的一些思考:

假设已知的随机变量P,求相对简单的随机变量Q,使得两者的分布尽可能的接近应该怎么做呢,相信大家都能想到的是相对熵,即P和Q的KL距离,但是这个问题的难点在于相对熵的一个性质:非对称性,那么是将P放在前面还是Q呢?这就不好办了。

这里提供一种思路:假定使用KL(Q||P),为了让距离最小,则要求在P为0的地方,Q尽量为0。会得到比较“窄”的分布曲线;假定使用KL(P||Q),为了让距离最小,则要求在P不为0的地方,Q也尽量不为0。会得到比较“宽”的分布曲线;

2.再补充一些基本的概率公式:

a.条件概率公式:

b.全概率公式:


c.贝叶斯公式:


贝叶斯公式的应用:8支步枪中有5支已校准过,3支未校准。一名射手用校准过的枪射击,中靶概率为0.8;用未校准的枪射击,中靶概率为0.3;现从8支枪中随机取一支射击,结果中靶。求该枪是已校准过的概率。

解:



下面开始逐步了解贝叶斯网络。

首先要指出的的朴素贝叶斯假设:1.一个特征出现的概率,与其他特征(条件)独立(特征独立性),即对于给定分类的条件下,特征独立;
    2.每个特征同等重要(特征均衡性)。

以文本分类为例来简单看一下朴素贝叶斯的使用:

样本: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(c1|x)=P(x|c1)*P(c1) / P(x),P(c2|x)=P(x|c2)*P(c2) / P(x),注意这里x是向量。

将上述公式进行分解,P(c|x)=P(x|c)*P(c) / P(x)—》》P(x|c)=P(x1,x2…xN|c)=P(x1|c)*P(x2|c)…P(xN|c)(特征条件独立假设);带入公式: P(c|x)=P(x|c)*P(c) / P(x),即可得到相对准确的分类结果(改进结果可以使用拉普拉斯平滑等平滑方案)。

思考:

拉普拉斯平滑(加1平滑)能够避免0/0带来的算法异常;

因为要比较的是P(c1|x)和P(c2|x) 的相对大小,而根据公式P(c|x) =P(x|c)*P(c) / P(x),二者的分母都是除以P(x),实践时可以不计算该系数;

编程的限制:小数乘积下溢出怎么办?(是不是可以采用log来避免溢出呢);

问题:一个词在样本中出现多次,和一个词在样本中出现一次,形成的词向量相同怎么解决?(由0/1改成计数);

如何判断两个文档的距离?(夹角余弦);

如何判定该分类器的正确率(样本中:K个生成分类器,1000-K个作为测试集;交叉验证)等。

贝叶斯网络:把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。又称有向无环图模型(directed acyclic graphical model),是一种概率图模型,借由有向无环图(Directed Acyclic Graphs, DAG)中得知一组随机变量{X1,X2...Xn}及其n组条件概率分布(Conditional Probability Distributions, CPD)的性质。

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

下面是一个简单的贝叶斯网络:

机器学习之贝叶斯网络_第1张图片

全连接贝叶斯网络:每一对结点之间都有边连接,



你可能感兴趣的:(文本挖掘,机器学习)