朴素贝叶斯和贝叶斯信念网络(简称贝叶斯网络)是数据挖掘和机器学习中基本的分类算法,其理论基础都是贝叶斯定理。
1,回归模型和生成模型
有监督的分类问题可以分为两大类,回归模型和生成模型。
回归模型:首先假设样本服从某一分布,常用的如高斯分布、伯努利分布等。在这一假设下训练一个模型(即分类器),对于检测样本,将样本的特征集作为输入,得到指示样本类别的类标签。由于是用训练集的特征集合和类标签集合对新来的检测样本作预测,所以称为回归模型。
与回归不同,这类方法需要训练n(n是类别个数)个分类器,将新样本代入到各个模型中,从中选一个,从而得到作为算法输出的类标签。贝叶斯方法和高斯混合模型都是典型的生成模型方法。
2,贝叶斯定理
下面是著名的贝叶斯公式:
$P(C|X)=\frac{P(C)P(X|C)}{P(X)}$
具体说,每一个模型都来源于这个公式,只是C的取值不同,使得意义不同。模型的意义是:要求得给定样本X,是类别C的概率,如此得到的n个概率分别是给定样本X,样本是类别Ci(i=1,2,...,n)的概率。其中如果样本属于类别Cj的概率最大,则输出是j。
简单说,贝叶斯定理告诉我们,可以用先验概率估算后验概率。
3,朴素贝叶斯
一个样本有m个属性,假设m个属性是条件独立的,换句话说,任意一个属性取某个属性值,和样本属于某个类别是相互独立的。在这一强假设下,得到朴素贝叶斯模型的训练规则:
$Classifier({f_1},{f_2}, cdots ,{f_n}) = begin{array}{*{20}{c}}
{arg max }\
c
end{array}prodlimits_{i = 1}^n P({F_i} = {f_i}left| {C = {c}} right.){P (C = {c})}$
由于是针对同一个X而言,P(X)项不产生影响。
由于属性之间的相互独立的,计算概率时讲各个条件概率密度简单相乘即可。
下面是误差率的计算。在美洲鳄和鳄鱼的分类的例子中,假设两种鳄的长度服从正态分布,如图。
在训练出的朴素贝叶斯分类器对于处在两种分布的重叠部分的样本,无法给出确切的类标签。误差率则定义在图中的阴影部分。对于只有一个属性的训练集,误差率表示为二维平面的面积,对于有m个属性的训练集,误差率表示为m+1维超平面的面积。可以看书,误差率实际上是衡量训练集优劣的标准,好的训练集能够训练出很好的分类器。
朴素贝叶斯的优点是,当数据集满足假设时,能得到很好的效果,并且离群点、误差点对分类结果的影响甚小,因为贝叶斯分类器对每个检测样本的归类,都是根据全部训练集的信息得到的,并不受到个别点的影响。
其缺点也很明显,其一,很多情况下数据不满足假设;其二,不适用于高维数据集,因此不适用与文档分类等情况。实际上文档分类中常用的是SVM。
4,贝叶斯网络
在许多情况下,样本各个属性之间是用关联的,一个属性的概率分布可能被其他属性的概率分布影响。贝叶斯网络是一种更灵活的类条件概率P(X|C)的建模方法,不要求给定的数据集中属性之间都条件独立,而是允许指定哪些属性条件独立。贝叶斯网络包括两部分:网络拓扑图和概率表。如下是一个发现心脏病和心口痛病人的贝叶斯信念网络。
可以看到,属性锻炼和饮食以一定概率影响心脏病和心口痛的发病,而心脏病和心口痛也以一定概率影响血压和胸痛这两个症状的发生。网络拓扑结构可以通过对主观的领域专家知识编码获得。建立模型的算法如下。
可证明算法可以保证图中不出现环路。如果存在环,则至少有一条边从低序节点指向高序节点,然而算法不会出现这种情况。贝叶斯网络是很复杂的一个研究领域。下面简单用例子看BBN的分类过程。
case 1:没有先验信息。 可通过计算先验概率P(HD=1)和P(HD=0)来确定一个人是够可能患Heart Disease。其中i=0,1表示锻炼的两个属性值,j=0,1分别表示不健康和健康的饮食。
$\sum_{i=0}^{1}\sum_{j=0}^{1}P(HD=1|E=i,D=j)P(E=i,D=j)$
case 2:高血压 如果一个人患有高血压,可以比较后验概率P(HD=1|BP=高)和P(HD=0|BP=高)来判断此人是否患心脏病。
case 3:高血压,饮食健康,锻炼情况 假设以上信息都已知,此人的患有心脏病的后验概率是:
$P(HD=1 | BP=High,D=Healthy,E=Yes)=\left [ \frac{P(BP=High | HD=Yes,D=Healthy,E=Yes)}{P(BP=High|D=Healthy,E=Yes)} \right ]{P(HD=Yes|D=Healthy,E=Yes)}$
BBN很适合处理不完整的数据,就如上面的例子,就算信息缺失,还是可以进行分类。因为数据和先验知识以概率的方式结合起来了,BBN对模型过分拟合有很好的鲁棒性。然而,构造一个很好的网络的过程,是复杂的。
https://blog.sciencenet.cn/blog-799581-636399.html
上一篇:
SDR, USDR and DRSC下一篇:
FEKM: fast and extract out-of-core k-means clustering