这章有点儿乱,不知道怎么总结
怎样用非数学语言讲解贝叶斯定理(Bayes theorem)?.
R ( h ) = E x [ R ( h ( x ) ∣ x ) ] R\left(h\right)=Ex\left[R\left(h\left(x\right)∣x\right)\right] R(h)=Ex[R(h(x)∣x)]
显然,每个样本最小化条件风险R(h(x)|x),则总体风险R(h)也将会被最小化。
为最小化总体风险,只需在每个样本上选择那个能使条件风险R(c|x)最小的类别标记,
即 h ∗ ( x ) = a r g m i n c h^{*}\left(x\right)=argmin_c h∗(x)=argminc
h称为贝叶斯最优分类器(Bayes optimal classifier),
与之对应的总体风险 R ( h )称为贝叶斯风险(Bayes risk).
1 − R ( h ∗ )反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
估计类条件概率的常用策略:先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布参数估计。
似然是推测参数的分布
而求最大似然估计的问题,就变成了求似然函数的极值。
贝叶斯公式来估计后验概率 P(c I x) 的主要困难:
类条件概率 P(x I c) 是所有属性上的联合概率,难以从有限的训练样本直接估计而得。
为避开这个障碍,朴素贝叶斯分类器(naÏve Bayes classifier)采用了 “属性条件独立性假设” : 对已知类别,假设所有属性相互独立
1.
由于0.063>6.8*10-5,因此该分类器将“测1”判别为“好瓜”
显然,拉普拉斯平滑修正了因训练集样本不充分造成的概率为0的问题,并且在训练集变大时,估计值也逐渐趋向于实际的概率值。
==2.==再来看一个例子
因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。
这就是贝叶斯分类器的基本方法:在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。
“半朴素贝叶斯分类器”:对属性条件独立性假设进行一定程度的放松.
基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
贝叶斯网借助有向无环图来刻画属性间的依赖关系,并使用条件概率表来描述属性的联合概率分布。
一个贝叶斯网 B 由结构 G和参数 两部分构成,即 B =
网络结构 G 是一个有向无环图,其每个结点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来;参数 定量描述这种依赖关系。
贝叶斯网结构有效地表达了属性间的条件独立性。给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。
首要任务:根据训练数据集来找出结构最恰当的贝叶斯网
评分搜索是求解这一 问题的常用办法。
评分函数(score function): 评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。
== c. 推断==
通过已知变量观测值来推测待推测查询变量的过程称为“推断” (inference),已知变量观测值称为“证据” (evidence)。
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,但这样的"精确推断"己被证明是 NP 难的 。
当网络结点较多、连接稠密时,难以进行精确推断,此时需借助"近似推断"。 通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯网的近似推断常用吉布斯采样,这是一种随机采样方法。
需注意的是,由于马尔可夫链通常需很长时间才能趋于平稳分布,因此吉布斯采样算法的收敛速度较慢.此外,若贝叶斯网中存在极端概率 “0” 或 “1” ,则不能保证马尔可夫链存在平稳分布,此时吉布斯采样会给出错误的估 计结果.
在现实应用中往往会遇到"不完整"的训练样本。
将这种未观测到的变量称为隐变量。
EM 算法是常用的估计参数隐变量的利器,它是一种迭代式的方法。其基本想法是:若参数θ己知, 则可根据训练数据推断出最优隐变量 Z 的值 (E 步);反之,若Z 的值已知,则可方便地对参数θ做极大似然估计 (M 步).
参考link.
转载自https://zhuanlan.zhihu.com/p/51768750
7.1 试使用极大似然法估算回瓜数据集 3.0 中前 3 个属性的类条件概率.
7.2* 试证明:条件独立性假设不成立时,朴素贝叶斯分类器仍有可能产生最优贝叶斯分类器.
只有在两者决策边界之间(浅黄色区域),其分类情况是不同的,在其他区域,朴素贝叶斯分类结果和最优贝叶斯的分类结果是相同的,因此即便属性之间独立性假设不成立,朴素贝叶斯在某些条件(本例中就是属性概率分布在两者相交区域之外)下任然是最优贝叶斯分类器。
参考:
《On the Optimality of the Simple Bayesian Classifier under Zero-One Loss》
ps.这个例子就是来自该论文,只做了一点翻译工作。论文中给出了更全面的理论证明,和朴素贝叶斯产生最优贝叶斯分类的充分必要条件。本打算看完把理论证明也尝试复述一遍,但能力有限,一方面没有理解很透彻,另一方面证明过程有点长感觉表达能力有点不大够用…
7.3 试编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集 3.0 为训练集,对 p.151 “测1” 样本进行判别.
链接: link.
这里代码很简单。不怎么规范。
或者
链接: link.
其中编写了函数c=nb(x,X,Y,laplace=True),可以通过参数laplace选择是否进行拉普拉斯修正。将其设为False时,可以将计算结果与教材计算结果进行对比,对比发现,教材中对于连续型属性-----密度和含糖率的正态分布参数估计中,对于方差的估计采用了无偏估计,亦即 ( s i g m a c , i 2 = f r a c 1 ∣ D c ∣ − 1 s u m x i n D c ( x − m u c , i ) 2 ) (sigma_{c,i}^{2}=frac{1}{|D_c|-1}sum_{xin D_c}(x-mu_{c,i})^2) (sigmac,i2=frac1∣Dc∣−1sumxinDc(x−muc,i)2)。
7.5 试证明:二分类任务中两类数据满足高斯分布且方差相同时,线性判别分析产生贝叶斯最优分类器.
再看看线性判别分析:
7.6 试编程实现 AODE 分类器,并以西瓜数据集 3.0 为训练集,对 p.151的"测1" 样本进行判别.
答:代码在link.
或者
link.
提一下关于连续值处理的问题。这个书中和原论文(好像)都没有提交,所以按照自己的理解来处理了。考虑到以下,实现过程中不将连续值作为父属性。
此外AODE本身就是要将取值样本数量低于一定阈值(论文中给出的是30)的属性去除的,从这个角度来说,连续值就不能作为父属性了,当前其实可以按照区间划分将连续值离散化。
另外,虽然在样本这么小的情况下,看预测结果实际意义不大,但相比于朴素贝叶斯,AODE对于西瓜数据集的拟合更好(错误率更低)。
7.9 以西瓜数据集 2.0 为训练集,试基于 BIC 准则构建一个贝叶斯网.
答:
关于贝叶斯网结构的构建,书中p160只稍微提了一下,不过还是挺好理解的,《A Tutorial on Learning With Bayesian Networks》11节给出了更详细的描述。比较简单是方法就是贪心法:
7.10 以西瓜数据集 2.0 中属性"脐部"为隐变量,试基于 EM 算法构建一个贝叶斯网.
同样看https://article.itxueyuan.com/QnLpnM里面的第10题。