理解贝叶斯分类器原理及关系

作者:vicky_siyu 致谢:小龙快跑jly, 巧儿、克力,Esther_or so,雨佳小和尚

本文是对贝叶斯分类器的初步理解,通过案例解释贝叶斯并对贝叶斯分类器的关系进一步分析和理解。本文只是在学习后进行了总结并加入了自己的理解,如有不妥之处,还望海涵,也希望大家多多指教,一起学习!

一、 贝叶斯三连问

贝叶斯分类器是什么?有什么用?怎么用?

为了更好地理解这个问题,我们先看一个案例:
案例(来源于西瓜书):[1]
在这里插入图片描述

判断一个具有特征:{色泽=青绿,根蒂=蜷缩,敲声=浊响,纹理=清晰,脐部=凹陷,触感=硬滑,密度=0.697,含糖率=0.460}的测试样例瓜是否为好瓜?

这个问题其实就是一个分类问题,而且是个二分类问题,是不是好瓜?分类的原理很简单,就是判断这个样例属于好瓜的概率和属于坏瓜的概率哪个更大,即后验概率P(c│x)哪个更大。

常见的分类方法有决策树、人工神经网络、支持向量机、贝叶斯分类器等。
(PS:各种分类方法的优缺点可参考[2])
这些分类方法主要分为两种模型,见下表: [3]

分类模型 判别式模型 生成式模型
分类原理 直接对后验概率P(c│x)进行建模 对联合概率分布p(x,c)建模,之后由条件概率公式得出后验概率
相关算法 决策树、人工神经网络、支持向量机 贝叶斯分类器

简单说,贝叶斯分类器就是一种分类的方法,而且是一种基于贝叶斯原理,对联合概率分布p(x,c)建模,之后由条件概率公式得出后验概率的生成式模型的方法。(注:P(x,c)= P(x│c) P( c ))

那怎么用呢?
首先,我们复习一下贝叶斯定理
贝叶斯公式

P(c│x) P(x│c) P(c ) P(x)
属性x属于类别c的概率 类别c中x属性出现的概率 某个类别发生的概率 属性x出现的概率
后验 似然 先验 证据因子

Ps. 似然函数 L(x;θ)在形式上,其实就是样本的联合密度。
把x1,x2,x3,…,xn看作常数,而把待定参数θ0,θ2,…,θn看作 L 的自变量。对连续型总体X 和离散型随机变量X,样本的似然函数分别是概率密度和分布率的连乘形式。
(最大似然估计可参考 https://blog.csdn.net/zengxiantao1994/article/details/72787849)

贝叶斯分类器目的就是分类,即判断含有属性x的样本属于哪一类,也就是判断后验P(c│x)在不同的类别时概率的大小,后验概率越大说明所属的类别越有可能是正确的类别。因此,我们的目标就转化为了最大化后验概率,然后将后验概率最大的类别判定为该样本所属的类别。
在这里插入图片描述

对于同一个样本而言P(x)都是一样的,对分类结果没有什么影响,为了提高运行效率,我们在计算时可以不考虑证据因子P(x)。最大化后验概率便转化为了最大化似然与先验的乘积。

在这里插入图片描述
在这里插入图片描述
接下来的问题就是分别计算似然与先验,然后算一下乘积。
案例中的先验比较好计算,先验:P(好瓜=是)=8/17≈0.471 P(好瓜=否)=9/17≈0.529。
但是似然就有点麻烦了,样本有8个特征属性,但是这8个特征属性都要同时满足似然才不为0,在现实中其他案例里特征属性更多,维度更高,如果样本量还很少,计算似然就更麻烦了。所以为了简化计算,往往采用朴素贝叶斯分类器(Naive Bayes Classifiers, NBC)的方法,即假设各属性之间相互独立。
在这里插入图片描述
接下来,就让我们用最简单的朴素贝叶斯分类器愉快地计算案例中的测试样本属于哪一类吧~
(ps.离散的属性通过统计得出概率,连续的属性我们假设其为正态分布计算)

在这里插入图片描述

最后计算先验与类条件概率的乘积,数值大的对应的分类为分类结果:
在这里插入图片描述
由计算结果可知,此瓜更有可能是好瓜。

二、 贝叶斯追问

1) 朴素贝叶斯分类器(NBC)假设所有属性相互独立,有用吗?合理吗?
事实证明,在属性的相关性不大的情况下,朴素贝叶斯分类器的效果还是不错的,比如垃圾分类,文本分类至今还在用NBC。但是在生活中,属性间完全独立的假设往往很难成立,所以放宽了一点条件,提出了半朴素贝叶斯分类器。

2) 半朴素贝叶斯分类器(Semi-NBC, SNBC)是什么意思?
NBC不是假设所有属性都相互独立吗?SNBC就是允许属性间有一定的关联,常用的是独依赖估计(One-Dependent Estimator,ODE)。即每个属性在类别之外最多依赖一个父属性pai。

3) 那怎么判断应该依赖哪个父属性呢?
常用的方法有三种:SPODE,AODE 和TAN算法
具体算法及案例可参考另一篇文章:贝叶斯分类器算法及案例详解,https://blog.csdn.net/weixin_43742744/article/details/85494193

4) 如果有的依赖一个父属性,有的依赖多个父属性呢?
那可能需要构建贝叶斯网络了
贝叶斯网络可参考:https://blog.csdn.net/v_july_v/article/details/40984699

5) 这些方法有什么内在联系吗?
在这里插入图片描述
6) 这些方法各有什么优缺点,适用于什么场景?

朴素贝叶斯分类器(NBC) 半朴素贝叶斯分类器(SNBC) [4] 贝叶斯网络(BN)
应用场景 各属性之间独立性较强,依赖性较弱 NBC适用的场景, SNBC都适用,且SNBC更适用于属性间有较强联系的场景 各属性之间不确定性较大
举例 垃圾邮件分类,文本分类 文本分类,经济分析 故障诊断 ,金融分析

7) 想深入了解,这些方法能给具体的案例和算法吗?
请移步另一篇文章:贝叶斯分类器算法及案例详解, https://blog.csdn.net/weixin_43742744/article/details/85494193

参考文献:

[1] 周志华,《机器学习》,[M],1版,北京:清华大学出版社,2016
[2] 各种分类算法优缺点比较,[J/OL],https://blog.csdn.net/u012050154/article/details/51501151
[3] 贝叶斯分类器原理与应用,[J/OL],https://blog.csdn.net/leonliu1995/article/details/78821918
[4] 李玉杰,半朴素贝叶斯分类器研究[D].北京:中央民族大学,2017

猜你喜欢

转载自blog.csdn.net/weixin_43774508/article/details/85686266