简单易懂的朴素贝叶斯(Navie Bayes) 原理的讲解和代码未实现(原始代码和sk_learn)

说起朴素贝叶斯,我脑海中的第一印象是各种独立事件组合发生的概率。
所谓朴素贝叶斯,其实就是根据已知独立事件来求未知组合发生的概率。
举个例子:
在这里插入图片描述
当一个病人 患上头痛,职业是农夫,那么他的疾病最可能是什么? 这就是朴素贝叶斯要估计的事情。
定义:朴素贝叶斯是基于贝叶斯定律和特征条件独立假设的**分类方法,**根据提供的数据集,首先基于特征条件独立假设学习输入/输出的联合概率发布,然后基于此模型,对于给定的输入x,利用贝叶斯定律求出后验概率最大的输出y。

基本知识储备:
一、贝叶斯定理:
贝叶斯·定理
关于贝叶斯分母,其实可以精简一点:化成P(A),因为∑P(Bj)= 1

二、极大似然估计(高中知识):
思想:根据样本的规律分布,给出样本的概率联合似然函数,并最大化函数,得到参数的估计值
目的:最大化似然函数,得到合适的θ值
假设事件X发生的概率是θ,以硬币为例,Xi={ 1, 正;0,反}
则正态分布Xi~b(1,θ)=>P(X=x)=θ^ x*( 1-θ)^(1-x)
似然函数:
L(θ)= P(X1=x1|θ)∪P(X2=x2|θ)∪ P(X3=x3|θ)…∪P(Xn=xn|θ)

∏ (θ^ xi)((1-θ)^(1-xi))
求导:转化成log函数

max(ln(L(θ)) = ∑[ xilnθ+(1-xi)ln(1-θ)] = ∑xilnθ + (n-∑xi)*ln(1-θ)

得到:θ = ∑xi / n
这也证明了:频率可以代替概率

上面的例子是非连续性取值,关于连续性取值我们不用概率质量函数P(x|c),而是概率密度函数ρ(x|c)~ N(μ,σ);(N是正态分布)
σ是方差,μ是平均值
μ = |D|\∑ x (x属于D);σ = |D|\∑(x-μ)(x-μ)T
还是那么熟悉的分布:
正态分布
铺垫已经完成了,接下来开始学习朴素贝叶斯算法:
一、贝叶斯决策论:
目的:在概率框架下实施决策
假设有N种类别Y={c1,c2,c3,…,cn},设置损失λij是把标记为cj的样本错误的分类为ci的所产生的损失,基于后验概率P(c|x)可获得将样本x错误分类为ci产生的期望损失,也可以称之为“条件风险”:
condition risk
我们的任务是找到一个判定准则h : X->Y以最小化总体风险
总体风险
对每一个样本,若h能最小化条件风险R(h(x)|x),则总体风险R(h)也将最小化,这就产生了贝叶斯判定法则:
为最小化总体风险,只需在每个样本上选择那个能使条件风险R(c|x)最小的类别标记,即:在这里插入图片描述
此时,h
为贝叶斯最优分类器,与之对应的R(h*)称之为贝叶斯风险,1-R(h*)反映了分类器所能达到的最好性能。
λij表示为={0,if i ==j;1,otherwise}
此时条件风险R(c|x)=1-P(c|x)
解释一下:为什么是1-P(c|x)?
在所有类别当中只有一个正确分类,也就是说
R(c|x) = p(!c|x) + p(!c|x)+…+0p(c|x)
又 p(!c|x) + p(!c|x)+…+p(c|x) = 1
因此R(c|x)=1-P(c|x)
于是最小化条件风险 <=> 最大化h
(x) =arg max(P(c|x)),即对每一个样本x,选择那个能使后验概率达到最大的P(c|x)的类别标记c.

不难看出,要得到h*(x)来最小化决策风险,需要先知道后验概率P(c|x),但是现实中这通常难以直接获得,因此我们要机器学习基于有限的训练样本来尽可能的准确的估计出后验概率P(c|x)
主要有两种策略:
一、判断式模型:给定x,直接对x进行建模,生成P(c|x),预测c,像决策树模型,SVM模型等
二、生成式模型:先,对联合概率P(c,x)进行建模,由此获得P(c|x)

这里我们使用生成式模型
P(c|x)= P(c,x)/P(x);基于前文准备的贝叶斯定理,我们可以得到:

*P(c|x)=P(x|c)P©/P(x)

那么问题便是求类条件概率P(x|c),朴素贝叶斯提出了一种假设——“属性条件独立性假设”:对已知类别,假设所有属性相互独立,也就是说:假设每个属性独立地对分类结果发生影响。
此假设的意义:P(x|c)是所有属性的联合概率,难以从从有限的样本当中直接获取。在计算上遭遇组合爆炸,在数据上遭遇样本稀缺的问题;属性越多,问题越大。
基于独立条件假设:我们可将P(c|x)=P(x|c)*P©/P(x)改造成:
在这里插入图片描述
上述各属性各种独立,共同累乘(N元乘积)
可得朴素贝叶斯分类器
同一个例子x,比较不同取不同类别的可能性时,P(x)是相同的,因此去掉P(x)
朴素贝叶斯分类器
P© =|Dc| / |D|,P(xi|c) = |Dc,xi| / |Dc|,“Dc”表示训练集D中的第c类样本所组成的样本集合,Dc,xi,表示Dc中第i个属性上取值为xi,的样本所组成的集合。
对于连续性取值:
μ是平均值 ,σ方差
在这里插入图片描述
下面实例演练:
数据集:

编号,色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率,好瓜
1,青绿,蜷缩,浊响,清晰,凹陷,硬滑,0.697,0.46,是
2,乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,0.774,0.376,是
3,乌黑,蜷缩,浊响,清晰,凹陷,硬滑,0.634,0.264,是
4,青绿,蜷缩,沉闷,清晰,凹陷,硬滑,0.608,0.318,是
5,浅白,蜷缩,浊响,清晰,凹陷,硬滑,0.556,0.215,是
6,青绿,稍蜷,浊响,清晰,稍凹,软粘,0.403,0.237,是
7,乌黑,稍蜷,浊响,稍糊,稍凹,软粘,0.481,0.149,是
8,乌黑,稍蜷,浊响,清晰,稍凹,硬滑,0.437,0.211,是
9,乌黑,稍蜷,沉闷,稍糊,稍凹,硬滑,0.666,0.091,否
10,青绿,硬挺,清脆,清晰,平坦,软粘,0.243,0.267,否
11,浅白,硬挺,清脆,模糊,平坦,硬滑,0.245,0.057,否
12,浅白,蜷缩,浊响,模糊,平坦,软粘,0.343,0.099,否
13,青绿,稍蜷,浊响,稍糊,凹陷,硬滑,0.639,0.161,否
14,浅白,稍蜷,沉闷,稍糊,凹陷,硬滑,0.657,0.198,否
15,乌黑,稍蜷,浊响,清晰,稍凹,软粘,0.36,0.37,否
16,浅白,蜷缩,浊响,模糊,平坦,硬滑,0.593,0.042,否
17,青绿,蜷缩,沉闷,稍糊,稍凹,硬滑,0.719,0.103,否
估计类先验概率:
P(好瓜=是)=8/17≈0.471
P(好瓜=否)=9/17≈0.529
然后,对每一个属性估计条件概率P(xi|c):
在这里插入图片描述
输入例子(青绿,蜷缩,浊响,清晰,凹陷,硬滑,密度=0.697,含糖=0.460)
可得:
好瓜可能性较高。

注意实际应用时,训练集在某个属性值上会缺失某些值,这将导致P(xi|c)=0,影响判断,因此我们在估计概率值时通常要进行“平滑处理”,又称为拉普拉斯修正,
P©= (|Dc|+1)/(|D|+N)
P(xi|c)=(|Dc,xi| + 1) / (|Dc|+Ni)
例如:P(好瓜=是)= (8+1) / (17 +2)= 0.474
拉普拉斯实质上假设了属性值和类别分布均匀,这是朴素贝叶斯引入的先验知识,当数据足够大时,便可以忽略此举带来的影响。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值