贝叶斯系列:(一)朴素贝叶斯分类器
2017-11-07 20:51
176 查看
假设有N种可能的类别标记,记为:
现有一个样本x给定其各个属性的取值
,d为x所包含的属性的数目,若将x归为第c类的第k个属性,则有
(1)
然后根据计算每个属性的概率,取最大的概率值作为x属于的c类的值。朴素贝叶斯分类器的最基本最核心的思想是“假设已有样本中各个属性之间独立”,由此有:
(2)又因为p(x)都是相同的,所以贝叶斯判定准则为
(3)
即判定准则取最大时x属于的类别 ci;
估计类的先验概率P(c)的计算是基于训练集D的,并为每个属性估计条件概率
。
令
表示训练集D种c类样本的集合,若有充足的独立同分布样本,则有
(4)对于离散属性而言,令
表示
中在第i个属性上的取值
的样本集合,则有
(5)对于连续属性考虑概率密度函数,假定
,其中利用极大似然估计对参数进行计算有:
(6)
所以:
(7) 同时
是一个属性的连乘过程,对于第i个属性可能会存在在c类中没有出现过,但是将含有i个属性的样本x放入c的概率计算为0显然是不合理的,所以可进行“平滑处理”,常用的方法为“拉普拉斯修正”,具体来说,令N表示训练集D中可能含有的类别数(c的个数),
表示第i个属性的取值数,则(4)(5)修正如下:
(8)
(9)
从该数据集计算得到的先验概率以及每个离散属性的类条件概率、连续属性的类条件概率分布的参数(样本均值和方差)如下:先验概率:P(Yes)=0.3;P(No)=0.7P(有房=是|No) = 3/7P(有房=否|No) = 4/7P(有房=是|Yes) = 0P(有房=否|Yes) = 1P(婚姻状况=单身|No) = 2/7P(婚姻状况=离婚|No) = 1/7P(婚姻状况=已婚|No) = 4/7P(婚姻状况=单身|Yes) = 2/3P(婚姻状况=离婚|Yes) = 1/3P(婚姻状况=已婚|Yes) = 0年收入:如果类=No:样本均值=110;样本方差=2975如果类=Yes:样本均值=90;样本方差=25现有新样本:X={有房=否,婚姻状况=已婚,年收入=120K},通过计算确定是否存在拖欠贷款的行为:所以p(年收入=120k|NO)=
p(年收入=120k |YES)=
同时P(婚姻状况=已婚|Yes) = 0,计算时会存
4000
在乘的现象,主要是因为样本不够大,此时便可采用“拉普拉斯修正”进行平滑处理。所以对于P(婚姻状况=已婚|Yes) 来说:
:表示在YES中婚姻状况为已婚的人数=0;
:表示婚姻状况可能的取值数=2(yes or no)
:yes类中包含的样本数=3所以根据拉普拉斯修正有:P(婚姻状况=已婚|Yes)=
所以:P(No)*P(有房=否|No)*P(婚姻状况=已婚|No)*P(年收=120K|No)=0.7*4/7*4/7*0.684=0.156P(Yes)*P(有房=否|Yes)*P(婚姻状况=已婚|Yes)*P(年收入=120K|Yes)=0.3*1*0.2*1=0.06 因为0.156>0.06,故认为该样本属于NO,即没有拖欠贷款。
总结:朴素贝叶斯在分类问题中应用非常广泛,特别是在垃圾邮件的处理中,虽然说对于有些特征独立性假设并不是很合理,但是它的分类效果却非常不错,但是由于朴素贝叶斯分类的假设是所有的特征是独立的,所以经常被攻击,所以有学者提出了基于朴素贝叶斯假设开始,利用T检验和卡方分布来判断特征之间的独立性关系,从而从建立朴素贝叶斯网络开始,逐步计算特征之间的非独立关系,从而最后监理处贝叶斯网络,有兴趣的可以去看看这篇参考文献:Section. A Bayesian Classifier Learning Algorithm Based on Optimization Model[J]. Mathematical Problems in Engineering,2013,(2013-2-6), 2013, 2013(2013):681-703. 当然除了朴素贝叶斯网络,还有基于朴素贝叶斯扩展的TAN,BAN网络等,在后期我再一一讲述。
现有一个样本x给定其各个属性的取值
,d为x所包含的属性的数目,若将x归为第c类的第k个属性,则有
(1)
然后根据计算每个属性的概率,取最大的概率值作为x属于的c类的值。朴素贝叶斯分类器的最基本最核心的思想是“假设已有样本中各个属性之间独立”,由此有:
(2)又因为p(x)都是相同的,所以贝叶斯判定准则为
(3)
即判定准则取最大时x属于的类别 ci;
估计类的先验概率P(c)的计算是基于训练集D的,并为每个属性估计条件概率
。
令
表示训练集D种c类样本的集合,若有充足的独立同分布样本,则有
(4)对于离散属性而言,令
表示
中在第i个属性上的取值
的样本集合,则有
(5)对于连续属性考虑概率密度函数,假定
,其中利用极大似然估计对参数进行计算有:
(6)
所以:
(7) 同时
是一个属性的连乘过程,对于第i个属性可能会存在在c类中没有出现过,但是将含有i个属性的样本x放入c的概率计算为0显然是不合理的,所以可进行“平滑处理”,常用的方法为“拉普拉斯修正”,具体来说,令N表示训练集D中可能含有的类别数(c的个数),
表示第i个属性的取值数,则(4)(5)修正如下:
(8)
(9)
实例
数据集如下:从该数据集计算得到的先验概率以及每个离散属性的类条件概率、连续属性的类条件概率分布的参数(样本均值和方差)如下:先验概率:P(Yes)=0.3;P(No)=0.7P(有房=是|No) = 3/7P(有房=否|No) = 4/7P(有房=是|Yes) = 0P(有房=否|Yes) = 1P(婚姻状况=单身|No) = 2/7P(婚姻状况=离婚|No) = 1/7P(婚姻状况=已婚|No) = 4/7P(婚姻状况=单身|Yes) = 2/3P(婚姻状况=离婚|Yes) = 1/3P(婚姻状况=已婚|Yes) = 0年收入:如果类=No:样本均值=110;样本方差=2975如果类=Yes:样本均值=90;样本方差=25现有新样本:X={有房=否,婚姻状况=已婚,年收入=120K},通过计算确定是否存在拖欠贷款的行为:所以p(年收入=120k|NO)=
p(年收入=120k |YES)=
同时P(婚姻状况=已婚|Yes) = 0,计算时会存
4000
在乘的现象,主要是因为样本不够大,此时便可采用“拉普拉斯修正”进行平滑处理。所以对于P(婚姻状况=已婚|Yes) 来说:
:表示在YES中婚姻状况为已婚的人数=0;
:表示婚姻状况可能的取值数=2(yes or no)
:yes类中包含的样本数=3所以根据拉普拉斯修正有:P(婚姻状况=已婚|Yes)=
所以:P(No)*P(有房=否|No)*P(婚姻状况=已婚|No)*P(年收=120K|No)=0.7*4/7*4/7*0.684=0.156P(Yes)*P(有房=否|Yes)*P(婚姻状况=已婚|Yes)*P(年收入=120K|Yes)=0.3*1*0.2*1=0.06 因为0.156>0.06,故认为该样本属于NO,即没有拖欠贷款。
总结:朴素贝叶斯在分类问题中应用非常广泛,特别是在垃圾邮件的处理中,虽然说对于有些特征独立性假设并不是很合理,但是它的分类效果却非常不错,但是由于朴素贝叶斯分类的假设是所有的特征是独立的,所以经常被攻击,所以有学者提出了基于朴素贝叶斯假设开始,利用T检验和卡方分布来判断特征之间的独立性关系,从而从建立朴素贝叶斯网络开始,逐步计算特征之间的非独立关系,从而最后监理处贝叶斯网络,有兴趣的可以去看看这篇参考文献:Section. A Bayesian Classifier Learning Algorithm Based on Optimization Model[J]. Mathematical Problems in Engineering,2013,(2013-2-6), 2013, 2013(2013):681-703. 当然除了朴素贝叶斯网络,还有基于朴素贝叶斯扩展的TAN,BAN网络等,在后期我再一一讲述。
相关文章推荐
- Pyhton贝叶斯系列分析
- 机器学习系列(2):logistic回归,贝叶斯(bayes)方法
- 斯坦福机器学习: 网易公开课系列笔记(五)——高斯判别分析、朴素贝叶斯
- 机器学习读书笔记之6 - 贝叶斯系列
- 机器人运动估计系列(番外篇)——从贝叶斯滤波到卡尔曼(中)
- [循证理论与实践] Meta分析系列之五:贝叶斯 Meta 分析与 WinBUGS 软件
- 图像处理基础知识系列之五:贝叶斯方法简单梳理
- 半朴素贝叶斯分类器及贝叶斯网知识点(摘自西瓜书)
- 贝叶斯篇:贝叶斯的概率推到,朴素贝叶斯分类器及Python实现
- 机器人运动估计系列(番外篇)——从贝叶斯滤波到卡尔曼(上)
- 网络开发客户<系列>
- 一步一步学Silverlight 2系列(24):与浏览器交互相关辅助方法
- 【系列】Latex-3
- 架构系列一:架构的分析与设计
- 使用插入排序算法对列表进行排序——Leetcode系列(五)
- 随笔分类 - 你必须知道的异步编程系列[转]
- Linux系列:linux下查看磁盘空间
- So Easy! Oracle在Linux上的安装配置系列五
- svg学习系列02-简单的svg图形和线条
- zw版【转发·台湾nvp系列Delphi例程】HALCON SubImage