朴素贝叶斯中 - 连续型特征属性和零概率事件处理
2017-03-29 16:02
399 查看
连续型特征属性和零概率事件处理
上面讲的特征属性值,都是离散的,账号真假检测例子中把连续的转换成区间,每个区间也可以看成离散的,但是如果在不能这样转换的情况下怎么解决?如果特征属性值是不是离散的,而是连续的怎么办?我们是站在巨人的肩膀上,前人早已经为我们找到了应对之策
当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:
而
因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。(ak为观察到的属性值)
另一个需要讨论的问题就是当P(a|y)=0怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个问题,引入了拉普拉斯校准,它的思想非常简单,就是对没类别下所有划分(概率为零的)的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为零的尴尬局面。
买电脑是否和收入相关的例子
验证买电脑,是否和收入有关的场景下:类 buys_computer=yes包含1000个元组,有0个元组income=low ,990个元组 income=medium,10个元组income=high,这些事件的概率分别是0, 0.990, 0.010.
有概率为0,肯定不行.使用拉普拉斯校准,对每个收入-值对应加1个元组,分别得到如下概率
[plain] view plain copy
print?
1/1003=0.001
999/1003=0.998
11/1003=0.011
这些校准的概率估计与对应的未校准的估计很接近,但是避免了零概率值
性别分类的例子
再看一个阮一峰老师的朴素贝叶斯应用一文中摘自维基百科的例子,关于处理连续变量的另一种方法。下面是一组人类身体特征的统计资料。
[plain] view plain copy
print?
性别 身高(英尺) 体重(磅) 脚掌(英寸)
男 6 180 12
男 5.92 190 11
男 5.58 170 12
男 5.92 165 10
女 5 100 6
女 5.5 150 8
女 5.42 130 7
女 5.75 150 9
已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?
根据朴素贝叶斯分类器,计算下面这个式子的值。
P(身高|性别) x P(体重|性别) x P(脚掌|性别) x P(性别)
这里的困难在于,由于身高、体重、脚掌都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办?
这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。
比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。
有了这些数据以后,就可以计算性别的分类了。
P(身高=6|男) x P(体重=130|男) x P(脚掌=8|男) x P(男)
= 6.1984 x e-9
P(身高=6|女) x P(体重=130|女) x P(脚掌=8|女) x P(女)
= 5.3778 x e-4
可以看到,女性的概率比男性要高出将近10000倍,所以判断该人为女性。
下一篇会写贝叶斯网络。
参考文章:
http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html http://blog.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/zdy0_2004/article/details/41096141
参考书籍:数据挖掘概念与技术。数据挖掘十大算法,统计学概率论方面的数学知识
码字不易,转载请指明出自http://blog.csdn.Net/tanggao1314/article/details/66478782
相关文章推荐
- c# 运行时创建事件处理程序 & DialogResult属性
- window.onload事件处理程序 innerHTML属性
- JavaScript权威指南_163_第17章_事件处理_17.2-注册事件处理程序-设置HTML标签属性为事件处理程序
- Webview相关属性和事件处理
- 小样本大概率事件的正确处理方式 - 2. 结果分析
- 删除要被替换的元素的所有事件处理 程序和 JavaScript 对象属性
- JavaScript:关于事件处理程序何时可以直接访问元素的属性
- delphi的属性property和消息处理特点事件属性。
- JQ 选择器、属性 、筛选、文档处理、事件、效果
- 小样本大概率事件的正确处理方式 - 3. 实际使用
- ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性
- jQuery入门之二:设置属性,设置事件处理
- Linq To Sql模式中自动生成T-SQL增删改操作系列~PropertyChanged事件实现在子类中记录属性的变化,在基类中进行统一处理
- JavaScript权威指南_162_第17章_事件处理_17.2-注册事件处理程序-设置JavaScript对象属性为事件处理程序
- 内省(Introspector)是Java 语言对Bean类属性、事件的一种缺省处理方法
- 用侦听器的useCapture属性决定事件哪个阶段做处理
- View相关属性分析与处理按键事件
- CListCtrl控件主要事件及LVN_ITEMCHANGED消息和鼠标双击列表项事件的处理;属性类型设定
- jQuery事件处理的特征(事件命名机制)
- listView的点击事件失效处理、和其属性