朴素贝叶斯分类
2016-05-17 17:20
225 查看
今天谈一谈朴素贝叶斯分类,我这篇文章加上了机器学习的标签,因为朴素贝叶斯分类和KNN分类不一样,它有一个训练的过程,虽然只是简单的计算概率,相比其它机器学习算法来说比较low,但确实是学习了一些东西。而且我个人认为人类认知世界其实靠的就是概率。下面是烂到家的导图一张
![](https://img-blog.csdn.net/20160517164135653?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
先说说贝叶斯定理吧。
P(h|D)= P(D|h)P(h) / P(D)
其中P(h|D)表示在知道D发生的情况下h发生的概率。
我们把X看作分类中的特征集,yi代表第i个分类,xj代表第j个特征
所以:
P(yi|X)=P(X | yi)P(yi) / P ( X)
在分类过程中我们比较P(y | X)的大小,当yi的概率最大,那么我们就认为这个事物属于类别i
因为 P(X)是不变的 所以可以省略变为:
P(yi |X)=P(yi)P(X|yi)
=P(yi)P(x1|yi)P(x2|yi)...P(xn|yi)
朴素贝叶斯分类的流程如下:
(准备阶段 – 人工)
确定特征属性 --> 获取训练样本 -->
(分类器训练阶段 – 机器)
--> 计算P(yi) --> 计算所有的P(aj|yi) -->
(应用阶段 – 机器)
--> 对所有的类别计算 P(yi)P(X|yi) --> 以P(yi)P(X|yi)最大的类别作为X的所属类别。
注意:
我们的数据中有的特征可能是年龄、收入、身高这种线性的值,而不是性别、国家、职业这种方便计算概率的离散型的值
我们有两种方法处理这种特征:
1.离散化:
将线性数据离散化。
例:
年龄:
小于18岁
18岁到30岁
30岁到50岁
50岁以上
这样把线性的数据年龄变成了离散型数据分成了四类。但是我们不能保证我们分类的取值范围是正确的。
2.正态分布:
我们可以通过正态分布来计算概率,这种方法我们大学都应该在概率统计课上学过。
这里面f(x)就是P(x | yi)
P(x | yi)=(1/sqrt(2π)) e ^ ( -((x-μ)^2) / 2σ^2)
其中μ代表X的平均值,σ代表样X的样本标准差。 X是在yi类中xj的数值集合。
朴素贝叶斯的优点在于简单,速度快,而且训练需要的数据量比较小。
而缺点是不能学习特征之间的相互作用,比如说一个人喜欢米也喜欢奶酪,但不喜欢奶酪加米。贝叶斯学不到这些。毕竟sometimes naive
先说说贝叶斯定理吧。
P(h|D)= P(D|h)P(h) / P(D)
其中P(h|D)表示在知道D发生的情况下h发生的概率。
我们把X看作分类中的特征集,yi代表第i个分类,xj代表第j个特征
所以:
P(yi|X)=P(X | yi)P(yi) / P ( X)
在分类过程中我们比较P(y | X)的大小,当yi的概率最大,那么我们就认为这个事物属于类别i
因为 P(X)是不变的 所以可以省略变为:
P(yi |X)=P(yi)P(X|yi)
=P(yi)P(x1|yi)P(x2|yi)...P(xn|yi)
朴素贝叶斯分类的流程如下:
(准备阶段 – 人工)
确定特征属性 --> 获取训练样本 -->
(分类器训练阶段 – 机器)
--> 计算P(yi) --> 计算所有的P(aj|yi) -->
(应用阶段 – 机器)
--> 对所有的类别计算 P(yi)P(X|yi) --> 以P(yi)P(X|yi)最大的类别作为X的所属类别。
注意:
我们的数据中有的特征可能是年龄、收入、身高这种线性的值,而不是性别、国家、职业这种方便计算概率的离散型的值
我们有两种方法处理这种特征:
1.离散化:
将线性数据离散化。
例:
年龄:
小于18岁
18岁到30岁
30岁到50岁
50岁以上
这样把线性的数据年龄变成了离散型数据分成了四类。但是我们不能保证我们分类的取值范围是正确的。
2.正态分布:
我们可以通过正态分布来计算概率,这种方法我们大学都应该在概率统计课上学过。
这里面f(x)就是P(x | yi)
P(x | yi)=(1/sqrt(2π)) e ^ ( -((x-μ)^2) / 2σ^2)
其中μ代表X的平均值,σ代表样X的样本标准差。 X是在yi类中xj的数值集合。
朴素贝叶斯的优点在于简单,速度快,而且训练需要的数据量比较小。
而缺点是不能学习特征之间的相互作用,比如说一个人喜欢米也喜欢奶酪,但不喜欢奶酪加米。贝叶斯学不到这些。毕竟sometimes naive
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/bye.gif)
相关文章推荐
- Android Studio项目结构&AS构建基础
- Json Web Token身份认证
- 【数据库】基础知识总结
- Codeforces Round #353 (Div. 2)题解
- 【转】SIFT特征提取分析
- [转]如何成为主管
- mate 8、荣耀6,手机连接eclipse、AS调试应用没有log输出
- JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
- AndroidTV桌面BriskTVLanucher
- 二叉查找树(AVL)插入算法Java实现
- Android中进程和线程
- 一个简单的递归算法的思考
- hibernate相关问题
- 可能最有效的母亲节邮件主题,你用对了吗?
- Hive实战
- 流氓网站5599.net修改ie主页分析
- 977dh用vbs通过wsh创建桌面快捷方式,快速启动,修改ie主页的恶意代码 ...
- YII学习总结4(cookie操作)
- 用户体验---搜狗输入法
- 监控redis和zookpeer服务脚本 并且python发送邮件