数据挖掘-朴素贝叶斯分类

数据挖掘-朴素贝叶斯分类

什么是分类?

分类是一种重要的数据分析形式,它提取刻画重要数据类的模型。这种模型称为分类器,预测分类的(离散的,无序的)类标号。例如医生对病人进行诊断是一个典型的分类过程,医生不是一眼就看出病人得了哪种病,而是要根据病人的症状和化验单结果诊断病人得了哪种病,采用哪种治疗方案。再比如,零售业中的销售经理需要分析客户数据,以便帮助他猜测具有某些特征的客户会购买某种商品。

朴素贝叶斯分类

贝叶斯分类法是统计学分类方法,它可以预测类隶属关系的概率(比如:通过一些特征预测或判断一个人是男人还是女人;如一个给定元组属于一个特定类的概率)。贝叶斯分类基于贝叶斯定理。

朴素贝叶斯分类法假定一个属性值在给定类上的概率独立于其他属性的值,这一假定称为类条件独立性。

相关概念描述
名称描述
D训练元组 和 相关联类标号 的集合
X{x1,x2,x3,…,xn} 一个元组 ,xi是对应属性的值
C{C1,C2…,Cm} m个类别
P(X)对所有类别C都为常数
P(X/Ci) ∏ k = 1 n P ( x k / C i ) \prod_{k=1}^n P(x_k/C_i) k=1nP(xk/Ci) note:朴素假定
P(Ci)先验概率
P(Ci/X)后验概率(条件概率)
贝叶斯公式
朴 素 假 定给定具有很多属性的数据集,计算P(X / Ci)的开销非常大。为了降低计算开销,可以做类条件独立的朴素假定。给定元组的类标号,假定属性值有条件地相互独立
关于朴素假定

在这里插入图片描述
考察该属性是分类的还是连续值的,例如为了计算P(X|Ci),考虑如下两种情况:

(a)、如果Ak是分类属性,则P(xk|Ci)是D中属性Ak的值为xk的Ci类的元组数除以D中Ci类的元组数|Ci,D|
(b)、如果Ak是连续值属性,则假定连续值属性服从均值为η、标准差为σ的高斯分布,由下式定义:
在这里插入图片描述
P ( x k ∣ C i ) = g ( x k , η c i , σ c i ) P(x_k |C_i) = g (x_k,η_{ci},σ_{ci}) P(xkCi)=g(xk,ηci,σci)

朴素贝叶斯分类流程
  1. 确定特征属性
  2. 获取训练样本
  3. 对每一个类别计算P(Ci)
  4. 对每个特征属性计算所有划分的条件概率P(X|Ci)
  5. 对每个类别计算P(X|Ci)P(Ci)
  6. 用P(X|Ci)P(Ci)的最大项作为X所属类别
例如:

在这里插入图片描述

拉普拉斯修正

朴素贝叶斯分类器在实际使用中还需要注意的一个问题是(某个属性值没有出现怎么办?):

若某个离散类型的属性值在训练集中没有与某个类同时出现过,那么当我们使用 p ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ p(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} p(xic)=DcDc,xi对其进行估计时, p ( x i ∣ c ) p(x_i|c) p(xic)会等于0,而若某个样本只是在属性i上恰好取值为 x i x_i xi,但是它其它的属性非常符合这个类型c的特征,于是在用最后的连乘式计算该样本属于该类的概率时,不管其它的属性如何取值,就会因为 p ( x i ∣ c ) p(x_i|c) p(xic)这一个零值导致分类器认为该样本属于这个类型c的概率为0,这显然是不合理的。

比如在西瓜书 西瓜训练集中,好瓜当中暂时没有具备特征{敲声=清脆}的样本,于是对于一个“敲声=清脆”的测试例:

P ( 清 脆 ∣ 是 ) = P ( 敲 声 = 清 脆 ∣ 好 瓜 = 是 ) = 0 8 = 0 P_{(清脆|是)}=P_{(敲声=清脆|好瓜=是)}=\frac{0}{8}=0 P()=P(==)=80=0

那么,不管该测试瓜在其它属性上有多么接近好瓜,都会被直接判定为是好瓜的概率为0。

这个问题本质上是由于我们的训练集不够完整,没有包括足够多的样本。但是,为了避免这个问题的出现,我们通常还是在估计概率值时,对其进行“平滑”(smoothing)操作,通常使用“拉普拉斯修正”(Laplacian correction)。

具体做法是:令N表示训练集D中可能的类别数, N i N_i Ni表示第i个属性可能的取值数,那么我们估计类别概率值的P©和离散属性条件概率的 P ( x i ∣ c ) P(x_i|c) P(xic)的两个式子分别被调整为:

P ^ ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N , \hat{P}(c)=\frac{|D_c|+1}{|D|+N}, P^c=D+NDc+1
P ^ ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i \hat{P}(x_i|c)=\frac{|D_{c, x_i}|+1}{|D_c|+N_i} P^(xic)=Dc+NiDc,xi+1

即,我们在分母上都加上取值的可能性个数,分子上都加1,这就保证了即使是存在某个属性i的取值 x i x_i xi未曾与类别 c i c_i ci同时出现过,我们也不会把其概率 P ( x i ∣ c ) P(x_i|c) P(xic)算成0.

参考

https://blog.csdn.net/ccblogger/article/details/81712351
https://www.cnblogs.com/luonet/p/4028990.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值