1,Bayes定理 

  P(A,B)=P(A|B)P(B);

  P(A,B)=P(B|A)P(A);  

  P(A|B)=P(B|A)P(A)/P(B);    贝叶斯定理变形

2,概率图模型

2.1  定义

  概率图模型是一类用图的形式表示随机变量之间条件依赖关系的概率模型,是概率论与图论的结合。图中的节点表示随机变量,边表示随机变量之间的概率依赖关系.缺少边的节点表示满足条件独立假设。

2.2  随机变量的条件独立性

  如果有P(A,B|C)=P(A|C)P(B|C),  则称在给定事件C的条件下,两个事件A和B独立,这里假设P(C)>0;

如:设A=2x+z;  B=y+z;  C=z;

在C确定的条件下 A,B是独立的。如假设z=0(常数),则A和B没有任何关联。

  等价形式P(A|B,C)=P(A|C) 

 推导: P(A,B|C)=P(A|C)P(B|C);       ...1
     P(A,B|C)=P(A|B,C)P(B|C);   ...2

  联合1,2式可以=> P(A|C)=P(A|B,C)

2.3 概率图模型的有向图表示

利用有向图来表示变量之间的概率依赖关系,典型应用就是贝叶斯网络.

上图NaiveBayes 可以表示为: p(y,x1,x2,x3)=p(y).p(x1|y)p(x2|y)p(x3|y)

3,Naive Bayes Model

3.1 Bayes 决策理论思想

  朴素贝叶斯是贝叶斯决策理论的一部分, 所以讲述朴素贝叶斯之前有必要快速了解一下贝叶斯决策理论。

  假设我们有一个数据集,如下图所示:

 

我们用P(c1|x,y) 表示数据点(x,y)属于类别c1的概率(图中红色圆点的概率),用P(c2|x,y)表示数据点(x,y)属于类别c2的概率(图中绿色的三角形概率)。那么对于一个新的数据点(x,y),我们就可以用一下规则来判断它的类别。

  • If p(c1|x, y) > p(c2|x, y), then the class is c1.
  • If p(c2|x, y) > p(c1|x, y), then the class is c2.

也就是说,我们会选择高概率对应的类别。这就是贝叶斯决策理论的核心思想, 即选择具有最高概率的决策。

3.2 Naive Bayes 推导

 假设某个体有n项特征(Feature),分别为F1、F2、...、Fn。现有m个类别(Category),分别为C1、C2、...、Cm。贝叶斯分类器就是计算出概率最大的那  个 分类,也就是求下面这个算式的最大值:P(C|F1,F2,...,Fn);

  可以理解为求 在属性F1,F2,....Fn条件下,属于各个类别Ci的概率,然后求出最大的那个P(Ci|F1,F2,...Fn) ,这样就得到F1,F2,...Fn 属于哪一类(Ci)了。

  使用贝叶斯原理可以写成

   

  因为对于每一个类别的Ci的概率都存在P(F1,F2,......Fn)所以只需要关注P(C)P(F1,F2.....Fn|C)

  写成联合概率的形式P(C,F1,F2...Fn)=P(C)P(F1,F2.....Fn|C)

  重复使用贝叶斯原理=>

  

  现在“朴素”的“条件独立”(2中有推导)假设开始发挥作用:假设每个特征对于其他特征,是条件独立的。这就意味着

          

  对于,所以联合分布模型可以表达为

  

4,例子  ---性别分类

  下面是一组人类身体特征的统计资料。

身体特征资料统计
性别 身高(英尺) 体重(磅) 脚掌(英寸)
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(C|F1,F2,F3)的最大概率。

  根据上面的Naive Bayes Model       P(C|F1,F2,F3)=P(身高|性别) x P(体重|性别) x P(脚掌|性别) x P(性别)

  这里的困难在于,由于身高、体重、脚掌都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办?

  这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,  算出某一点的密度函数的值。

  比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的   值,只用来反映各个值的相对可能性)。

    

如上,我们就可以推出

 有了P(height|male),P(weight|male),...我们就可以得到

  P(height=6|male) x P(weight=130|male) x P(footsize=8|male) x P(male) 
    = 6.1984 x e-9

  P(height=6|female) x P(weight=130|female) x P(footsize=8|female) x P(female)
    = 5.3778 x e-4

可以看到,女性的概率比男性要高出将近10000倍,所以判断该人为女性。

5,概率图模型表示

p(y,x1,x2,x3)=p(y).p(x1|y)p(x2|y)p(x3|y),   P(y,x1,x2,x3)=φ1(y)φ(y,x1)φ(y,x2)φ(y,x3)

使用有相图表示:                   使用因子图表示:

                 

6,引用

http://en.wikipedia.org/wiki/Naive_Bayes_classifier#Probabilistic_model

http://pan.baidu.com/s/1dD1pcAl

Naive Bayes (NB Model) 初识的更多相关文章

  1. Spark MLlib 之 Naive Bayes

    1.前言: Naive Bayes(朴素贝叶斯)是一个简单的多类分类算法,该算法的前提是假设各特征之间是相互独立的.Naive Bayes 训练主要是为每一个特征,在给定的标签的条件下,计算每个特征在 ...

  2. Naive Bayes Theorem and Application - Theorem

    Naive Bayes Theorm And Application - Theorem Naive Bayes model: 1. Naive Bayes model 2. model: discr ...

  3. sklearn linear_model,svm,tree,naive bayes,ensemble

    sklearn linear_model,svm,tree,naive bayes,ensemble by iris dataset .caret, .dropup > .btn > .c ...

  4. 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

    贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种, ...

  5. 十大经典数据挖掘算法(9) 朴素贝叶斯分类器 Naive Bayes

    贝叶斯分类器 贝叶斯分类分类原则是一个对象的通过先验概率.贝叶斯后验概率公式后计算,也就是说,该对象属于一类的概率.选择具有最大后验概率的类作为对象的类属.现在更多的研究贝叶斯分类器,有四个,每间:N ...

  6. 朴素贝叶斯分类器(Naive Bayes)

    1. 贝叶斯定理 如果有两个事件,事件A和事件B.已知事件A发生的概率为p(A),事件B发生的概率为P(B),事件A发生的前提下.事件B发生的概率为p(B|A),事件B发生的前提下.事件A发生的概率为 ...

  7. MLLib实践Naive Bayes

    引言 本文基于Spark (1.5.0) ml库提供的pipeline完整地实践一次文本分类.pipeline将串联单词分割(tokenize).单词频数统计(TF),特征向量计算(TF-IDF),朴 ...

  8. 基于Naive Bayes算法的文本分类

    理论 什么是朴素贝叶斯算法? 朴素贝叶斯分类器是一种基于贝叶斯定理的弱分类器,所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关.举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果 ...

  9. 6 Easy Steps to Learn Naive Bayes Algorithm (with code in Python)

    6 Easy Steps to Learn Naive Bayes Algorithm (with code in Python) Introduction Here’s a situation yo ...

随机推荐

  1. 浅谈 HTML5plus 开发移动应用

    什么是 HTML5plus DCloud 公司提供的,使用传统 web 技术开发移动应用的解决方案. 增强版的手机浏览器引擎,让HTML5达到原生水平! 产品口号,总会有些夸张的成分,不要在意这些细节 ...

  2. Sonar项目主要指标以及代码坏味道详解

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6766994.html 众所周知Sona ...

  3. wpf阻止键盘快捷键alt+space,alt+F4

    /// <summary>        /// 阻止 alt+f4和alt+space 按键        /// </summary>        /// <par ...

  4. bzoj 4836: 二元运算

    死活TLE....求助 update 4.3 23:08 求助了tls之后终于过了...分治里次数界写崩了...r-l+1就行... 分治的做法很神奇!本题的限制在于操作类型与权值相对大小有关,而用[ ...

  5. UVa 1378 A Funny Stone Game [博弈论 SG函数]

    A Funny Stone Game 题意: $n \le 23$堆石子,每次选择$i < j \le k$,从$i$拿走1颗$j,k$各放入一颗,不能取就失败.求先手是否必胜以及第一次取的策略 ...

  6. BZOJ 3932: [CQOI2015]任务查询系统 [主席树]

    传送门 题意: 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi 调度系统会经常向查询系统询问,第Xi ...

  7. Python基础——输出[print()]与输入[input()]

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ Python是一种面向对象的解释型计算机程序设计语言,Python的特点是"简单"." ...

  8. 阿里云学习之API网关

    注:此处仅供api的创建做一个补充参考,API网关的优缺点及创建过程中的参数详情,请参考阿里云开放文档:https://helpcdn.aliyun.com/document_detail/29478 ...

  9. Java堆栈内存总结

    在Java中,主要存在四块内存空间,除了保存static类型属性的全局数据区,以及保存虽有方法定义的全局代码区之外,程序员更多的在乎内存中的另外两种区域--对象的生存空间堆(heap)和方法调用及变量 ...

  10. 在CentOS下安装crontab服务

    1. 确认crontab是否安装: 执行 crontab 命令如果报 command not found,就表明没有安装 2. 安装 crontab 执行 yum install -y vixie-c ...