zchn的个人博客分享 http://blog.sciencenet.cn/u/zchn

博文

Naive Bayes和贝叶斯网络

已有 19915 次阅读 2012-11-26 15:45 |个人分类:初出茅庐|系统分类:科研笔记| 网络

    朴素贝叶斯和贝叶斯信念网络(简称贝叶斯网络)是数据挖掘和机器学习中基本的分类算法,其理论基础都是贝叶斯定理。
   
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
收藏 IP: 210.30.107.*| 热度|

1 戴朝华

该博文允许注册用户评论 请点击登录 评论 (4 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-17 06:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部