分类(一):朴素贝叶斯文本分类

1、朴素贝叶斯假设

为了处理这种维数过高的情况,我们做一个假设:X的每一维特征之间都是独立的。这也就是朴素贝叶斯假设。

根据独立分布的条件,我们就能够容易地写出P(d|C),如下:

P(d/C) = ∏ P(ti / C)

d代表文档,ti代表文档中的每个词,C代表类。

2、朴素贝叶斯分类器

朴素贝叶斯分类器是一种有监督学习,常见有两种模型,多项式模型(multinomial model)和伯努利模型(Bernoulli model)。

先验概率在《信息检索导论》里面都是以类c下的文档数占比来衡量,而有些博客则以下面两种形式区分对待。

2.1、多项式模型

在多项式模型中, 设某文档d=(t1,t2,…,tk),tk是该文档中出现过的单词,允许重复,则:

    1. 先验概率P(c)= 类c下单词总数/整个训练样本的单词总数。
    2. 类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+|V|)。V是训练样本的单词表(即抽取单词,单词出现多次,只算一个),|V|则表示训练样本包含多少种单词。

P(tk|c)可以看作是单词tk在证明d属于类c上提供了多大的证据,而P(c)则可以认为是类别c在整体上占多大比例(有多大可能性)。

2.2、伯努利模型

P(c)= 类c下文件总数/整个训练样本的文件总数

P(tk|c)=(类c下包含单词tk的文件数+1)/(类c下单词总数+2)

二者的计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者的先验概率和类条件概率的计算方法都不同。

时间: 2024-10-11 15:17:04

分类(一):朴素贝叶斯文本分类的相关文章

机器学习之基于朴素贝叶斯文本分类算法

原理 在分类(classification)问题中,常常需要把一个事物分到某个类别.一个事物具有很多属性,把它的众多属性看做一个向量,即x=(x1,x2,x3,-,xn),用x这个向量来代表这个事物.类别也是有很多种,用集合Y=y1,y2,-ym表示.如果x属于y1类别,就可以给x打上y1标签,意思是说x属于y1类别.这就是所谓的分类(Classification). x的集合记为X,称为属性集.一般X和Y的关系是不确定的,你只能在某种程度上说x有多大可能性属于类y1,比如说x有80%的可能性属

详解使用EM算法的半监督学习方法应用于朴素贝叶斯文本分类

1.前言 对大量需要分类的文本数据进行标记是一项繁琐.耗时的任务,而真实世界中,如互联网上存在大量的未标注的数据,获取这些是容易和廉价的.在下面的内容中,我们介绍使用半监督学习和EM算法,充分结合大量未标记的样本,以期获得文本分类更高的准确率.本文使用的是多项式朴素贝叶斯作为分类器,通过EM算法进行训练,使用有标记数据以及未标记的数据.研究了多类分类准确率与训练集中未标记数据的比例之间的关系.并探索方法来降低EM过程的计算代价来加速训练.结果显示,半监督EM-NB分类器可以在只给2%标记数据情况

朴素贝叶斯文本分类(详解)

from numpy import zeros,array from math import log def loadDataSet(): #词条切分后的文档集合,列表每一行代表一个email postingList=[['your','mobile','number','is','award','bonus','prize'], ['new','car','and','house','for','my','parents'], ['my','dalmation','is','so','cute

【甘道夫】用贝叶斯文本分类测试打过1329-3.patch的Mahout0.9 on Hadoop2.2.0

引言 接前一篇文章<[甘道夫]Mahout0.9 打patch使其支持 Hadoop2.2.0> http://blog.csdn.net/u010967382/article/details/39088035, 为Mahout0.9打过Patch编译成功后,使用贝叶斯文本分类来测试Mahout0.9对Hadoop2.2.0的兼容性. 欢迎转载,转载请注明出处: http://blog.csdn.net/u010967382/article/details/39088285 步骤一:将20ne

第四章:基于概率论的分类方法: 朴素贝叶斯

本章内容□使用概率分布进行分类□学习朴素贝叶斯分类器□解析RSS源数据口使用朴素贝叶斯来分析不同地区的态度 前两章我们要求分类器做出艰难决策,给出“该数据实例属于哪一类”这类问题的明确答案.不过,分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值.       概率论是许多机器学习算法的基础,所以深刻理解这一主题就显得十分重要.第3章在计算特征值取某个值的概率时涉及了一些概率知识,在那里我们先统计特征在数据集中取某个特定值的次数,然后除以数据集的

朴素贝叶斯新闻分类,新浪SAE碰到的问题

1 如何将高版本的jdk通过Eclipse编译为较低版本的 2 当前SAE支持的jdk版本是1.6还有web项目war包不能是3.0版本及以上,必须编译为较低版本 3  No context on this server matched or handled this request问题:有的是jdk版本问题,还有是多了tomcat的servlet-api包的问题 4 文件读取中文乱码问题 br = new BufferedReader(new InputStreamReader( new Fi

《机器学习实战》学习笔记:基于朴素贝叶斯的分类方法

概率是许多机器学习算法的基础,在前面生成决策树的过程中使用了一小部分关于概率的知识,即统计特征在数据集中取某个特定值的次数,然后除以数据集的实例总数,得到特征取该值的概率. 目录: 一.基于贝叶斯理论的分类方法 二.关于朴素贝叶斯的应用场景 三.基于Python和朴素贝叶斯的文本分类 1.准备数据 2.训练算法 3.测试算法 四.小结 以下进入正文: 一.基于贝叶斯理论的分类方法 假设有两类数据组成的数据集如下: 其中,假设两个概率分布的参数已知,并用p1(x,y)表示当前数据点(x,y)属于类

【简单认识】机器学习常见分类算法——朴素贝叶斯

贝叶斯在1763年,<机会学说中一个问题的解>中提出了贝叶斯定理. 生活中不乏分类,比如我们经常通过一些人的衣着,来下意识的区别某些人是杀马特亦或是文艺青年.我们是如何做出这些判断或者说是分类的呢?这些判断大多来自我们的“经验之谈”,即,我们首先脑海中会先存有“某类人通常会如何着装打扮”的概念,然后当遇到这类显著特征之后,便会下意识的对其进行分类. 那么如何让机器进行这种类似的判断区分呢? 朴素贝叶斯分类法是一种相对简单易理解的机器分类方法.它的思想是首先对一些已知分类的样本进行采样(机器学习

基于概率论的分类方法:朴素贝叶斯算法实践学习

      关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2017年12月12日 13:03:46所撰写内容(http://blog.csdn.net/qq_37608890/article/details/78738552).             本文根据最近学习机器学习书籍 网络文章的情况,特将一些学习思路做了归纳整理,详情如下.如有不当之处,请各位大拿多多指点,在此谢过.          通过前两篇文章,我们对于k-近