数据挖掘-朴素贝叶斯分类
数据挖掘-朴素贝叶斯分类
什么是分类?
分类是一种重要的数据分析形式,它提取刻画重要数据类的模型。这种模型称为分类器,预测分类的(离散的,无序的)类标号。例如医生对病人进行诊断是一个典型的分类过程,医生不是一眼就看出病人得了哪种病,而是要根据病人的症状和化验单结果诊断病人得了哪种病,采用哪种治疗方案。再比如,零售业中的销售经理需要分析客户数据,以便帮助他猜测具有某些特征的客户会购买某种商品。
朴素贝叶斯分类
贝叶斯分类法是统计学分类方法,它可以预测类隶属关系的概率(比如:通过一些特征预测或判断一个人是男人还是女人;如一个给定元组属于一个特定类的概率)。贝叶斯分类基于贝叶斯定理。
朴素贝叶斯分类法假定一个属性值在给定类上的概率独立于其他属性的值,这一假定称为类条件独立性。
相关概念描述
名称 | 描述 |
---|---|
D | 训练元组 和 相关联类标号 的集合 |
X | {x1,x2,x3,…,xn} 一个元组 ,xi是对应属性的值 |
C | {C1,C2…,Cm} m个类别 |
P(X) | 对所有类别C都为常数 |
P(X/Ci) | ∏k=1nP(xk/Ci)\prod_{k=1}^n P(x_k/C_i)k=1∏nP(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(xk∣Ci)=g(xk,ηci,σci)P(x_k |C_i) = g (x_k,η_{ci},σ_{ci})P(xk∣Ci)=g(xk,ηci,σci)
朴素贝叶斯分类流程
- 确定特征属性
- 获取训练样本
- 对每一个类别计算P(Ci)
- 对每个特征属性计算所有划分的条件概率P(X|Ci)
- 对每个类别计算P(X|Ci)P(Ci)
- 用P(X|Ci)P(Ci)的最大项作为X所属类别
例如:
拉普拉斯修正
朴素贝叶斯分类器在实际使用中还需要注意的一个问题是(某个属性值没有出现怎么办?):
若某个离散类型的属性值在训练集中没有与某个类同时出现过,那么当我们使用p(xi∣c)=∣Dc,xi∣∣Dc∣p(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|}p(xi∣c)=∣Dc∣∣Dc,xi∣对其进行估计时,p(xi∣c)p(x_i|c)p(xi∣c)会等于0,而若某个样本只是在属性i上恰好取值为xix_ixi,但是它其它的属性非常符合这个类型c的特征,于是在用最后的连乘式计算该样本属于该类的概率时,不管其它的属性如何取值,就会因为p(xi∣c)p(x_i|c)p(xi∣c)这一个零值导致分类器认为该样本属于这个类型c的概率为0,这显然是不合理的。
比如在西瓜书 西瓜训练集中,好瓜当中暂时没有具备特征{敲声=清脆}的样本,于是对于一个“敲声=清脆”的测试例:
P(清脆∣是)=P(敲声=清脆∣好瓜=是)=08=0P_{(清脆|是)}=P_{(敲声=清脆|好瓜=是)}=\frac{0}{8}=0P(清脆∣是)=P(敲声=清脆∣好瓜=是)=80=0
那么,不管该测试瓜在其它属性上有多么接近好瓜,都会被直接判定为是好瓜的概率为0。
这个问题本质上是由于我们的训练集不够完整,没有包括足够多的样本。但是,为了避免这个问题的出现,我们通常还是在估计概率值时,对其进行“平滑”(smoothing)操作,通常使用“拉普拉斯修正”(Laplacian correction)。
具体做法是:令N表示训练集D中可能的类别数,NiN_iNi表示第i个属性可能的取值数,那么我们估计类别概率值的P©和离散属性条件概率的P(xi∣c)P(x_i|c)P(xi∣c)的两个式子分别被调整为:
P^(c)=∣Dc∣+1∣D∣+N,\hat{P}(c)=\frac{|D_c|+1}{|D|+N},P^(c)=∣D∣+N∣Dc∣+1,
P^(xi∣c)=∣Dc,xi∣+1∣Dc∣+Ni\hat{P}(x_i|c)=\frac{|D_{c, x_i}|+1}{|D_c|+N_i}P^(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
即,我们在分母上都加上取值的可能性个数,分子上都加1,这就保证了即使是存在某个属性i的取值xix_ixi未曾与类别cic_ici同时出现过,我们也不会把其概率P(xi∣c)P(x_i|c)P(xi∣c)算成0.
参考
https://blog.csdn.net/ccblogger/article/details/81712351
https://www.cnblogs.com/luonet/p/4028990.html
数据挖掘-朴素贝叶斯分类相关推荐
- [数据挖掘]朴素贝叶斯分类
写在前面的话: 我现在大四,毕业设计是做一个基于大数据的用户画像研究分析.所以开始学习数据挖掘的相关技术.这是我学习的一个新技术领域,学习难度比我以往学过的所有技术都难.虽然现在在一家公司实习,但是工 ...
- 数据挖掘——朴素贝叶斯分类
<数据挖掘>国防科技大学 <数据挖掘>青岛大学 Python:贝叶斯分类 贝叶斯分类基于贝叶斯定理,是机器学习的核心方法之一. 目前研究较多的贝叶斯分类器主要有四种: 朴素贝叶 ...
- 数据挖掘—朴素贝叶斯分类算法(Java实现)
算法描述 (1)扫描训练样本数据集,分别统计训练集中类别 Ci 的个数 Di 和属于类别Ci 的样本中属性Ak取值Xk为 Dik 的实例样本个数,构成统计表: (2)计算先验概率和条件概率,构成概率表 ...
- 【python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析
这是<Python数据挖掘课程>系列文章,也是我上课内容及书籍中的一个案例.本文主要讲述朴素贝叶斯分类算法并实现中文数据集的舆情分析案例,希望这篇文章对大家有所帮助,提供些思路.内容包括: ...
- python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析
#2018-04-06 13:52:30 April Friday the 14 week, the 096 day SZ SSMR python数据挖掘课程]二十一.朴素贝叶斯分类器详解及中文文本舆 ...
- 数据挖掘 | 判别分析 +朴素贝叶斯分类算法
本节记录一下由贝叶斯定理延伸出来的几种预测性建模的方法,主要为线性判别分析(一次,二次),朴素贝叶斯(稍稍提一下贝叶斯网络) 1. 判别分析 判别分析适用于自变量连续,因变量为分类型的情形: 设因变量 ...
- 【Python】大数据挖掘课程作业3——使用朴素贝叶斯分类对B站评论进行分析
[Python]大数据挖掘课程作业3--使用朴素贝叶斯分类对B站评论进行分析 参考资料:<Python数据科学手册> 数据来源:B站观察者网.观视频工作室.央视新闻.小央视频.环球网.环球 ...
- 【数据挖掘】拉普拉斯修正 ( 判别模型 | 概率模型 | 贝叶斯分类 | 拉普拉斯修正 | 朴素贝叶斯分类应用场景 | 朴素贝叶斯优缺点 )
文章目录 I . 判别模型 与 概率模型 II . 贝叶斯分类 III . 拉普拉斯修正 IV . 使用 朴素贝叶斯分类器 + 拉普拉斯修正 为样本分类 ( 完整分类流程 ) V . 朴素贝叶斯分类器 ...
- 数据挖掘:基于朴素贝叶斯分类算法的文本分类实践
前言: 如果你想对一个陌生的文本进行分类处理,例如新闻.游戏或是编程相关类别.那么贝叶斯分类算法应该正是你所要找的了.贝叶斯分类算法是统计学中的一种分类方法,它利用概率论中的贝叶斯公式进行扩展.所以, ...
最新文章
- android 模拟器Genymotion的安装和使用
- iOS和android的屏幕适配
- 学习android操作系统,学习Android手机操作系统笔记总结
- 字王谈M1字形与个人云字库
- 《Python Cookbook 3rd》笔记(5.12):测试文件是否存在
- SQL数据表字段类型与属性总结(DDL)
- 项目管理的成功方程式
- JS:ES6-12 模块化
- 前脚修复,后脚放 PoC:马上修复这个严重的SAP Recon 漏洞!
- 学习ES6路线了解图
- Python进阶(五)模块、包详解
- 天猫魔盘在 deepin-linux中的使用
- java小说网站源码_基于java的小说网站代码(全)
- Python 计算机视觉(五)特别篇 —— 透视变换
- pathon包傻瓜升级
- Python Str字符串 字符串常用方法 定义 创建 拆分 成分判断 大小写调整 格式化 填充 替换 访问 查找
- BLDC电机FOC控制技术学习笔记
- 腾讯云服务器地域重庆和成都区别及哪个好?
- 为什么有些孩子有多动症?为什么有些孩子不快乐?
- 批量删除SM.MS图床图片
热门文章
- 外虚内实是什么意思_广东潮州“茶”文化浓厚,为什么“工夫茶”常被谬传“功夫茶”?...
- linux 服务器 iptables 防止arp病毒,linux环境下防arp解决方法
- 定位插件_谷歌官方发布了一款全新超实用Chrome插件,支持国内使用!
- python开发环境推荐_推荐一款Python开发环境管理神器
- java自带的jvm在哪里看_使用jdk工具查看jvm笔记
- 微信小程序模板消息群发解决思路
- Maven 中央仓库及阿里云仓库地址
- chrome打开清除浏览数据窗口快捷键
- android UI开源库
- PHP curl get post通用类