码迷,mamicode.com
首页 > 编程语言 > 详细

朴素贝叶斯分类--python实现

时间:2015-10-06 23:29:28      阅读:456      评论:0      收藏:0      [点我收藏+]

标签:

1、概述

朴素贝叶斯分类是贝叶斯分类器的一种,贝叶斯分类算法是统计学的一种分类方法,利用概率统计知识进行分类,其分类原理就是利用贝叶斯公式根据某对象的先验 概率计算出其后验概率(即该对象属于某一类的概率),然后选择具有最大后验概率的类作为该对象所属的类。总的来说:当样本特征个数较多或者特征之间相关性较大时,朴素贝叶斯分类效率比不上决策树模型;当各特征相关性较小时,朴素贝叶斯分类性能最为良好。另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算。本文详述了朴素贝叶斯分类的统计学原理,并在文本分类中实现了该算法。朴素贝叶斯分类器用于文本分类时有多项式模型(词袋)和贝努利模型(词集)两种。

2、Naive Bayes基础知识

对于随机试验E有两个随机事件A,B,且P(B) > 0 那么在B事件发生的条件下A发生的概率为:
技术分享
其中P(AB)为A,B两个事件的联合概率。对上式利用乘法公式可以变形为:
技术分享
这样就得到了贝叶斯公式。贝叶斯文本分类就是基于这个公式,利用先验概率来得到文本的分类。
技术分享
其中P(Ci) 为第i个文本类别出现的概率, P(w1,w2…wn|Ci) 为文本类别为Ci时出现特征向量(w1,w2…wn)的概率,P(w1,w2…wn)为特征向量出现的概率。一般的会假设特征词,在文本中出现的概率是独立的,也就是说词和词之间是不相关的,那么这时候的联合概率就可以表示为乘积的形式,如 下:
技术分享
对于特定的训练集合来说,上式中P(w1)P(w2)…P(wn)是一个固定的常数,那么在进行分类计算的时候可以省略掉这个分母的计算,如是得到: 技术分享

事例解释:

假设现在有一个装了7块石头的罐子,其中3块是灰色的,4块是黑色的,如果从罐子中随机取出一块石头,那么灰色石头的可能性是3/7,黑色石头的可能性是4/7;如果这7块石头放在两个桶中,A桶有2块灰色、2块黑色,B桶有1块灰色、2块黑色,这里就涉及到条件概率,假定计算的是从B桶取到灰色石头的概率,这个概率可以记作P(gray|bucketB),我们称之为“在已知石头出自B桶的条件下,取出灰色石头的概率”,那么P(gray|buketA)=2/4,P(gray|buketB)=1/3

条件概率的公式如下:

P(gray|buketB)=P(gray and buketB)/P(buketB)

解释:首先用B桶中灰色石头的个数除以两个桶中的总的石头数,得到P(gray and buketB)=1/7,其次由于B桶中有3块石头,而总石头数为7,于是P(buketB)=3/7,于是有P(gray|buketB)=P(gray and buketB)/P(buketB)=1/3

朴素贝叶斯分类--python实现

标签:

原文地址:http://www.cnblogs.com/chamie/p/4857927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!