PGM学习之三 朴素贝叶斯分类器(Naive Bayes Classifier)
来源:互联网 发布:微商达人软件代理加盟 编辑:程序博客网 时间:2024/06/08 18:45
原文:http://blog.csdn.net/polly_yang/article/details/9471223
介绍朴素贝叶斯分类器的文章已经很多了。本文的目的是通过基本概念和微小实例的复述,巩固对于朴素贝叶斯分类器的理解。
一 朴素贝叶斯分类器基础回顾
朴素贝叶斯分类器基于贝叶斯定义,特别适用于输入数据维数较高的情况。虽然朴素贝叶斯分类器很简单,但是它确经常比一些复杂的方法表现还好。
为了简单阐述贝叶斯分类的基本原理,我们使用上图所示的例子来说明。作为先验,我们知道一个球要么是红球要么是绿球。我们的任务是当有新的输入(New Cases)时,我们给出新输入的物体的类别(红或者绿)。这是贝叶斯分类器的典型应用-Label,即给出物体标记。
从图中我们 还看到,绿球的数量明显比红球大,那么我们有理由认为:一个新输入(New case)更有可能是绿球。假如绿球的数量是红球的二倍,那么对于一个新输入,它是绿球的概率是它是红球的概率的二倍。
因此,我们知道:
假设一共有60个球,其中40个是绿球,20个是红球,那么类别的先验概率为:
有了先验概率之后,我们就可以准备对新来的物体(New Object),图中白色圈所示,进行分类。如果要取得比较准确的分类结果,那么我们猜测它是绿球比较保险,
也就是新物体与绿球的likelihood比与红球的likelihood更大。那么我们接下来衡量这种相似性-likelihood(似然)。
通过上面的公式,我们可以看出X是绿球的似然比X是红球的似然小,因为在X周围邻域内,有3个红球但是只有1个绿球。因此:
因此,尽管对于先验概率来说,X是绿球的可能性比其是红球的可能性大,但是似然(Likelihood)表现的结果却相反。在贝叶斯分析中,最后的类别是有上述两个概率 (先验和似然),这就是贝叶斯准则:
注:在实际使用时,概率要经过归一化(Normalized)。
二 技术推广
对于一组变量X={x1,x2,x3,,,,,,xd},我们希望构造输出C={c1,c2,c3,,,,,cd}的一个具体取值Cj(比如Cj是一个分类的情况)的先验概率。利用贝叶斯定理可知:
此处p(Cj|x1,x2,,,,,xd)就是Cj的显眼高铝,或者说是X属于Cj这类的概率。朴素贝叶斯假设相互独立变量的条件概率也相互独立。因此:
并且,先验可以写成如下的形式:
通过贝叶斯定义,我们可以在类别向量Cj的条件下估计X的类别标签。
朴素贝叶斯模型可以通过多种形式建模:正态分布,log正态分布,gamma分布和泊松分布(poisson)
注:此处的泊松分布被认为连续分布,当变量是离散值的时候另作处理。
三 例子
假设我们已经有如下数据:
这些数据可以归纳如下:
那么,对于一组新数据:
我们来计算两类的似然:
"yes" = 2/9 * 3/9 * 3/9 * 3/9 * 9/14 = 0.0053
"no" = 3/5 * 1/5 * 4/5 * 3/5 * 5/14 = 0.0206
归一化:
P("yes") = 0.0053 / (0.0053 + 0.0206) = 0.205
P("no") = 0.0206 / (0.0053 + 0.0206) = 0.795
那么,结论是我们今天 Not play。
四 代码
wind: strong
temp: cool
humidity: high
{'yes': 0.0052910052910052907, 'no': 0.020571428571428574}
- PGM学习之三 朴素贝叶斯分类器(Naive Bayes Classifier)
- PGM学习之三 朴素贝叶斯分类器(Naive Bayes Classifier)
- 朴素贝叶斯分类器 Naive Bayes Classifier
- 朴素贝叶斯分类器的应用 Naive Bayes classifier
- 朴素贝叶斯分类算法(Naive Bayes Classifier)
- 【机器学习实战之二】:C++实现基于概率论的分类方法--朴素贝叶斯分类(Naive Bayes Classifier)
- 朴素贝叶斯分类器(Naive Bayes)
- PGM:贝叶斯网表示之朴素贝叶斯模型naive Bayes
- 《机器学习实战》朴素贝叶斯(Naive Bayes)分类
- 朴素的贝叶斯分类器(Naive Bayesian Classifier)
- 朴素贝叶斯分类器(Naive Bayesian Classifier)
- 分类:朴素贝叶斯(Naive Bayes)
- Python 朴素贝叶斯(Naive Bayes)分类
- Bayesian Classifier (Naive Bayesian Classifier - 朴素贝叶斯分类)
- 朴素贝叶斯分类器(Naive Bayes Classifiers)
- 贝叶斯分类器与朴素贝叶斯分类器(Naive Bayesian Classifier,NBC)
- 朴素贝叶斯(naive Bayes)
- 朴素贝叶斯(Naive Bayes)
- oracle创建临时表及SQL语句拼接
- 高效获得Linux函数调用栈/backtrace的方法
- Hive中查看数据来源文件和具体位置方法
- 证书过期问题 —— 快速解决方法
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- PGM学习之三 朴素贝叶斯分类器(Naive Bayes Classifier)
- UIFont-动态字体
- Fiddler代理本地文件来简化查错机制
- Leetcode 474. Ones and Zeroes 01组合 解题报告
- Linux常用指令
- SQL练习 demo6_group by_having分组约束的应用
- QQ空间 代码秒赞
- Java反射机制详解
- JFreeChart学习(二)-动态生成图表,并设置图表的字体格式,显示样式