本节主要讲完整数据集下的参数学习, 在贝叶斯网络中参数就是计算路径概率的时候,每条连边的概率。对于这个概率主要有两种做法,这一种是 频率学派, 一种贝叶斯学派。
频率学派
这种方法是最容易理解和做的,直接调过证明过程,看一个小例子。看如图1的概率关系。
M |
F |
R |
m0 |
bad |
O |
m0 |
bad |
O |
m0 |
bad |
O |
m0 |
bad |
O |
m0 |
bad |
N |
m0 |
good |
O |
m1 |
bad |
O |
m1 |
bad |
N |
m1 |
good |
O |
m1 |
good |
N |
m1 |
good |
O |
m1 |
good |
N |
m1 |
good |
O |
m1 |
good |
N |
m2 |
good |
N |
P(M=m0)=156P(M=m1)=158P(M=m2)=151
P(F=good∣M=m0)=61P(F=bad∣M=m0)=65
这样就简单的将参数构建好了,基于一个完整的数据。
基于最大后验分布的参数估计
基于最大后验分布的参数估计假设先验分布是Dirichlet分布, 那么参数θij的后验分布为
P(θij∣D)=Dir(θij∣aij1′+aij1,...,aijr′+aijr)
利用求数学期望对参数进行估计
θ=∑k=1raijk′+aijkaijk′+aijk
这里可以举出一个例子,对于射击手来讲,一个队员射击了10次,中靶6次,和另一个队员设计100次,中靶60次,命中率都是60%。结论是水平相当。假设先验信息没有数据的情况, 那么使用均匀分布作为其分布,咱们假设aijk=1, 那么第一个队员的实际命中率就变成了 2+101+6 ,第二个队员的水平是 2+1001+60,明显第二个队员的水平更加靠谱一点。
对于上面的例子,咱们也用同样的方式看一下。对于M而言, Dirichlet系数为[50, 50,0].
P(M=m0)=15+1006+50P(M=m1)=15+1008+50P(M=m2)=15+1001+0
对于Dirichlet的系数(F,M=mi=[9,1],表示在无论M取什么值的条件下,在训练数据以外,F=OK和F=BAD都各自发生了9和1次,以此来避免训练数据里没有就否定了这种可能性的情况.
P(F=bad∣M=m2)=1+100+1
(0 + 1) 表示数据集中没有M=m2的条件下F=BAD的数据,1表示假样本有1笔
(1 + 10) 表示数据集中有一笔M=m2的数据,10表示相应的假样本有10笔
延伸
其实还有一趴东西是在不完整数据基础上进行进一步的探索。参数学习方式上有EM算法和gibbs采样方式,给大家如何将数据补全的方式,这里就不过多介绍啦。对于结构的学习一般是结构的EM算法。有兴趣可以继续探索