朴素贝叶斯详解

来源:互联网 发布:java技术培训 编辑:程序博客网 时间:2024/06/04 19:39

  朴素贝叶斯分类是一种十分简单的分类算法,它的核心思想就是:求解某样本在此特征组合情况下属于各个类别的概率,哪个类别对应的概率最大,就猜测属于该类别。举个例子,当你看到今天的温度,湿度和空气状况,判断今天属于春天还是冬天;假如你在北京,今天气温5度,干燥,轻度雾霾,那么你就很可能觉得今天应该是冬天了;就是根据一组特征值来判断属于哪种类别的概率大。

其数学定义如下:

  假设类别集合为C={c1,c2,...,cn},特征集合为A={A1,A2,...,An}。在某一组特征值为{a1,a2,...,an}的情况下,求解属于某类别ci的概率,这其实是一个条件概率,该概率为:

p(ci|a1,a2,...,an)

在实际应用中,直接求解这个值可能有些不现实,我们可以根据贝叶斯定理进行变换一下:
p(ci|a1,a2,...,an)=p(ci)p(a1,a2,...,an|ci)p(a1,a2,...,an)

用朴素的语言可以表达为:
posterior()=prior()likelihoor()evidence()

实际中,我们只关心分子部分,因为分母不依赖于类别C而且特征{a1,a2,...an}的值是给定的,于是分母可以认为是一个常数。这样求解重点就等价于p(ci)p(ci|a1,...,an),重复使用链式法则,可将该式写成条件概率的形式,如下所示:
p(ci)p(ci|a1,...,an)
=p(ci)p(ci|a1)p(a2,a3,...,an|ci,a1)
=p(ci)p(ci|a1)p(a2|ci,a1)p(a3,...,an|ci,a1,a2)
=p(ci)p(ci|a1)p(a2|ci,a1)p(a3|c,a1,a2)...p(an|ci,a1,...,an1)

由于朴素贝叶斯假设各特征之间是相互独立的,则有:

p(ai|C,aj)=p(ai|C)

所以有:
p(ci)p(ci|a1,...,an)=p(ci)p(a1|ci)...p(an|ci)

=p(ci)k=1np(ak|ci)

p(ci)我们一般用类别i的样本数量除以总样本数量来估计,即:
p(ci)=D(i):iD:

而对于p(ak|ci),只需要找出所有的类别为i的样本中,第k个属性中,取值为ak的比例。

  这样便可以算出每种类别对应的p(ci|a1,a2,...,an)值,而这个p值较大的类就是该特征值对有可能所属的类别。

离散型举例

下图是一个例子:根据天气状况决定要不要去打球:
这里写图片描述

现在假设有一个新的样本,{sunny,cool,high,true}
我们可以求解两类分别对应的概率p(play=yes|sunny,cool,high,true)p(play=no|sunny,cool,high,true),假设前者为py后者为pn,根据前面的:

p(ci|a1,a2,...,an)=p(ci)p(a1,a2,...,an|ci)p(a1,a2,...,an)

由于分母都相同,可以不同考虑,仅仅去比较分子的大小。所以转化为计算分子部分,求解分子部分公式为:
p(ci)p(ci|a1,...,an)=p(ci)k=1np(ak|ci)

则有:
py=p(yes)p(sunny|yes)p(cool|yes)p(high|yes)p(true|yes)

pn=p(no)p(sunny|no)p(cool|no)p(high|no)p(true|no)

p(yes)=914 ,即训练样本中,类型为yes所占的比例。同理,p(yes)=514,二者都是先验概率
p(sunny|yes)=29,即所有为yes类的样本中,天气为sunny所占的比例;同理p(sunny|no)=35。其他的类似求解,最后解得:p(cool|yes)=13,p(cool|no)=15;p(high|yes)=13,p(high|no)=45;p(true|yes)=13,p(true|no)=35;。所以带入可以得:

py=0.2;pn=0.8

此时pn>py,所以,不会出去打球。

连续型举例:

  对于连续型的情况,数学推导过程都差不多,但是在计算各种概率时不能仅仅用样本比例来求解,试想一下,测试样本中特征的取值可能压根就没有在已知样本中出现,这时候需要预测一下特征的分布情况(如果分布未知,一般用高斯分布,高斯分布其实就是正态分布,只是叫法不一样)。

  而我们需要用已知的样本数据来求解分布的未知参数(例如高斯分布模型中的参数的均值和方差),得到分布的参数之后,就可以根据输入的值来得到相应的概率。

下面是一个连续性的例子:

  根据身高,体重和脚的尺寸来猜测性别。样本数据如下图所示:

这里写图片描述

现在我们有一个测试样本,{6,130,8},我们需要判断这个样本的性别。同样,我们仅仅计算分子,分母不考虑,因为是一样的。
首先求解先验概率:
  p()=0.5,p()=0.5

然后计算似然概率:
以身高为例,男性身高的高斯分布为:

p(height|)=12πσ2exp((xμ)22σ2)

其中{μ=5.855,σ2=3.6033e02},将x=6带入,可以得到p(height=6|)=1.5789,同理可以计算得:
p(weight=130|)=5.9881e06,p(footsize=8|)=1.3112e3
p(height=6|)=2.2346e1,p(weight=130|)=1.6789e2,p(footsize=8|)=2.8669e04

最终带入公式可以得:

{pmale=6.1984e09,pfemale=5.3778e04}

显然为女性的概率更大,所以猜测是女性。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 肚子脂肪太厚怎么办 宝宝补牙不配合怎么办 抗生素吃过量了怎么办 虫牙牙龈肿了怎么办 牙龈肿痛怎么办吃什么药 拔牙后牙龈肿痛怎么办 母乳期牙龈肿痛怎么办 哺乳期牙龈肿痛怎么办t 哺乳期牙肉红肿怎么办 哺乳期牙肉肿痛怎么办 牙龈肿痛牙根疼怎么办 牙龈疼怎么办吃什么药 牙龈肿痛怎么办吃什么 牙疼肿了半边脸怎么办 受凉了牙龈肿痛怎么办 一受凉就牙痛怎么办 受凉了牙根肿痛怎么办 酒后吃了甲硝锉怎么办 吃了甲硝唑头晕怎么办 减肥遇到瓶颈期怎么办 石英舟碎了怎么办 饥荒冬天没食物怎么办 输液奥硝唑头晕怎么办 血糖高酮体高怎么办 孩子心肌酶高怎么办 脚臭起水泡痒怎么办 嘴角裂开怎么办小妙招 小孩烂嘴怎么办妙招 脸上出油厉害怎么办 舌头咬破了怎么办 狗狗得了犬瘟热怎么办 口腔内粘膜脱落怎么办 吃槟榔吃不了辣怎么办 口腔黏膜疾病要怎么办 香水喷多了怎么办 安全出口标志响怎么办 煤渣跑道起沙怎么办 日语单词记不住怎么办 塞牙弄不出来怎么办 钢笔写字不流畅怎么办 钢笔不出水怎么办妙招