基于朴素贝叶斯的文本分类

前言:学习机器学习的过程意识到,数学是工科的基石。很多数学公式似懂非懂,因此有了这篇博客,想在学习每个模型的过程中搞懂其中的数学理论。

贝叶斯决策论

1.前置知识:先验概率与后验概率

  • 先验概率P(B):根据以往经验和分析得到的概率

  先验概率是一种常识性、经验性认知,比如抛硬币正反面的概率是1/2。

  • 后验概率P(A|B):某个因素的到来影响了对某个结果发生可能性的判断

  后验概率是基于已知,对结果发生的可能性一种推测。

比如:文本分类中,假设文章类别为3类,没有数据时,观测到类别c的概率是先验概率P(c),数据x的到来改变这个概率为P(c|x),是数据支持这个类发生的可能性,以此作为数据所属类别。这就是后验概率。


2.贝叶斯分类器

  • 2.1.贝叶斯公式:

  (公式1)

  其中,P(C|X)是根据样本X对类别C的预测值。P(C)是类先验概率,它表示为某类样本在总样本中出现的可能性,对于某个样本,P(X)与样本分类无关。因此,求贝叶斯公式的关键在于求类条件概率P(X|C)。

  • 2.2.对数极大似然估计

  似然即类条件概率P(X|C),假设P(X|C)被参数向量θc唯一确定,则参数θc对数据样本某类类别为C的训练样本Dc的似然可以表示为:

   (公式2)

  对θc进行极大似然估计,就是去寻找最大化似然P(Dcc)的参数。在文本分类的实际问题中,表现为寻找一个最可能使数据Dc出现的类别,即:为数据Dc找到最可能的分类。

  在公式2中,因为每个文本类别的属性值往往有多个,这种连乘操作容易造成下溢,因此需要估计对数似然:

  (公式3)

  此时,多个属性的连乘就通过对数函数表现为相加。

  此时,对参数θc的极大似然估计表现为: (公式4)

  • 2.3.朴素贝叶斯分类器

  在实际分类问题中,样本的属性有可能是互相关联的,比如:x1的出现有可能会影响到x2的出现。对于类条件概率P(X|C),它涉及X中所有属性的联合概率,直接根据样本频率去估计,假设有d个属性,假设每个属性有n种可能取值,样本空间则有nd种排列,远远大于训练样本数。难以从有限样中估计得到。

  朴素贝叶斯分类器的“朴素”之处在于:假设这些属性都是独立的。即每个属性都独立的对结果造成影响。基于这种思想,贝叶斯公式可以改写为:

  (公式5)

  对于所有类别来说,P(x)相同,不起作用。所以,朴素贝叶斯公式的准则可以进一步表达为:

  (公式6)

  其中,hnb(x)为错误率,它就等于最大化似然。


3.朴素贝叶斯文本分类

在文本分类中,各成员的实际意义表示为:

此时有一个问题:假设测试样本中某个单词在训练样本中没有出现过,那么似然估计结果为0,会导致估计错误。因此需要对数据做拉普拉斯平滑处理。处理过程如下:

这样就有效解决了某个出现新词语导致的连乘结果为0的问题。



基于朴素贝叶斯的文本分类

原文地址:https://www.cnblogs.com/yanglive/p/12050611.html

时间: 2024-10-09 21:40:43

基于朴素贝叶斯的文本分类的相关文章

NLP系列(2)_用朴素贝叶斯进行文本分类(上)

作者:寒小阳 && 龙心尘 时间:2016年1月. 出处:http://blog.csdn.net/longxinchen_ml/article/details/50597149 http://blog.csdn.net/han_xiaoyang/article/details/50616559 声明:版权全部,转载请联系作者并注明出处 1. 引言 贝叶斯方法是一个历史悠久.有着坚实的理论基础的方法,同一时候处理非常多问题时直接而又高效.非常多高级自然语言处理模型也能够从它演化而来.因此,

(数据挖掘-入门-8)基于朴素贝叶斯的文本分类器

主要内容: 1.动机 2.基于朴素贝叶斯的文本分类器 3.python实现 一.动机 之前介绍的朴素贝叶斯分类器所使用的都是结构化的数据集,即每行代表一个样本,每列代表一个特征属性. 但在实际中,尤其是网页中,爬虫所采集到的数据都是非结构化的,如新闻.微博.帖子等,如果要对对这一类数据进行分类,应该怎么办呢?例如,新闻分类,微博情感分析等. 本文就介绍一种基于朴素贝叶斯的文本分类器. 二.基于朴素贝叶斯的文本分类器 目标:对非结构化的文本进行分类 首先,回顾一下朴素贝叶斯公式: 特征.特征处理:

机器学习基础——带你实战朴素贝叶斯模型文本分类

本文始发于个人公众号:TechFlow 上一篇文章当中我们介绍了朴素贝叶斯模型的基本原理. 朴素贝叶斯的核心本质是假设样本当中的变量服从某个分布,从而利用条件概率计算出样本属于某个类别的概率.一般来说一个样本往往会含有许多特征,这些特征之间很有可能是有相关性的.为了简化模型,朴素贝叶斯模型假设这些变量是独立的.这样我们就可以很简单地计算出样本的概率. 想要回顾其中细节的同学,可以点击链接回到之前的文章: 机器学习基础--让你一文学会朴素贝叶斯模型 在我们学习算法的过程中,如果只看模型的原理以及理

NLP系列(3)_用朴素贝叶斯进行文本分类(下)

作者: 龙心尘 && 寒小阳 时间:2016年2月. 出处: http://blog.csdn.net/longxinchen_ml/article/details/50629110 http://blog.csdn.net/han_xiaoyang/article/details/50629587 声明:版权所有,转载请联系作者并注明出处 1. 引言 上一篇文章我们主要从理论上梳理了朴素贝叶斯方法进行文本分类的基本思路.这篇文章我们主要从实践上探讨一些应用过程中的tricks,并进一步分

基于的朴素贝叶斯的文本分类(附完整代码(spark/java)

本文主要包括以下内容: 1)模型训练数据生成(demo) 2 ) 模型训练(spark+java),数据存储在hdfs上 3)预测数据生成(demo) 4)使用生成的模型进行文本分类. 一.训练数据生成 spark mllib模型训练的输入数据格式通常有两种,一种叫做 LIBSVM 格式,样式如下: label index1:value1 index2:value2 label为类别标签,indexX为特征向量索引下标,value为对应的那维的取值. 另一种格式样式如下: label f1,f2

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

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

详解基于朴素贝叶斯的情感分析及 Python 实现

相对于「 基于词典的分析 」,「 基于机器学习 」的就不需要大量标注的词典,但是需要大量标记的数据,比如: 还是下面这句话,如果它的标签是: 服务质量 - 中 (共有三个级别,好.中.差) ╮(╯-╰)╭,其是机器学习,通过大量已经标签的数据训练出一个模型, 然后你在输入一条评论,来判断标签级别 宁馨的点评 国庆活动,用62开头的信用卡可以6.2元买一个印有银联卡标记的冰淇淋, 有香草,巧克力和抹茶三种口味可选,我选的是香草口味,味道很浓郁. 另外任意消费都可以10元买两个马卡龙,个头虽不是很大

基于朴素贝叶斯分类器的文本分类算法

源代码下载:NaviveBayesClassify.rar Preface 文本的分类和聚类是一个比较有意思的话题,我以前也写过一篇blog<基于K-Means的文本聚类算法>,加上最近读了几本数据挖掘和机器学习的书籍,因此很想写点东西来记录下学习的所得. 在本文的上半部分<基于朴素贝叶斯分类器的文本分类算法(上)>一文中简单介绍了贝叶斯学习的基本理论,这一篇将展示如何将该理论运用到中文文本分类中来,具体的文本分类原理就不再介绍了,在上半部分有,也可以参见代码的注释. 文本特征向量

基于朴素贝叶斯的内容推荐算法

论文出处: http://www.cs.utexas.edu/~ml/papers/libra-sigir-wkshp-99.pdf 引言 这篇文章里面将会详细介绍基于多项式贝叶斯的内容推荐算法的符号以及术语,公式推导以及核心思想,学习如何从文本分类的角度来实现物品推荐.详细了解算法过程后,你应该可以利用里面的公式来计算出某个用户对于单词级别的喜好强度列表(profile),根据这个强度大小来对其他物品(需先用该强度来对该物品做加权算出该物品的喜好强度)做一个推荐的排序,从而得到用户可能最喜欢的