文本分类器 python_文本分类-贝叶斯分类器

本文介绍了贝叶斯定理的概念,通过曲奇饼问题阐述条件概率和贝叶斯定理的推导,并讨论了先验概率、后验概率和似然度。接着,文章讲解了朴素贝叶斯分类器的工作原理,包括文本预处理、特征词组计算和后验概率的求解,帮助读者理解如何运用贝叶斯理论进行文本分类。
摘要由CSDN通过智能技术生成

这两天阅读了小半部分《贝叶斯思维-统计建模的python学习法》,贝叶斯理论推导过程是本书的亮点,看一遍就能记住。案例也挺丰富有趣,但代码部分写的比较晦涩,代码上来就使用类,对python小白不是很友好。至今大邓看着仍然比较蛋疼,不建议python初学者入手这本书。但可以学下理论知识,方便学机器学习时候用到。

今天咱们就讲讲贝叶斯的原理及朴素贝叶斯文本分类算法。都是很久出

概率计算基础(有基础的可跳过)

条件概率

事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A | B),读作“在B条件下A的概率”。

联合概率

两个事件共同发生的概率。A与B的联合概率表示为 P(AB) 或者P(A,B),或者P(A∩B)。

有了前面的基本知识,现在我们先看一个曲奇饼问题,再展开贝叶斯定理的推导

曲奇饼问题

假设有两碗曲奇饼,

碗A包含30个香草曲奇饼和10个巧克力曲奇饼,

碗B这两种曲奇饼各20个。

现在假设你在不看的情况下随机地挑一个碗拿一块饼,得到了一块香草曲奇饼。

问题:从碗A渠道香草曲奇饼的概率是多少

思路

这是一个条件概率问题,我们希望得到P(碗A|香草饼),现在我们很容易知道P(香草饼|碗A)=3/4,如果将两者联系起来,那么P(碗A|香草饼)就很容易算得。但可惜P(A|B)与P(B|A)是不同的。但贝叶斯定理可以通过一个概率计算另一个概率。

贝叶斯定理推导步骤(记得公式的可跳过)

联合概率可交换,即 P(A and B)=P(B and A)

对于任意事件A、B都独立,因此联合概率P(A and B)=P(B)P(A|B)

2步骤执行交换,即P(B and A)=P(A)P(B|A)

因为步骤1等式,有如下等式成立P(B)P(A|B)=P(A)P(B|A)

最后等式两端除以P(B),得到P(A|B)=P(A)P(B|A)/P(B)

这就是贝叶斯定理,推导过程比中学时要简单很多。先来计算下曲奇饼问题

P(碗A|香草饼)= P(碗A)*P(香草饼|碗A)/P(香草饼)

P(碗A)=1/2 P(香草饼|碗A)=3/4 P(香草饼)=50/(50+30)=5/8 所以最后经过计算P(碗A|香草饼)=3/5

先验概率、后验概率、似然度、标准化常量

对上述贝叶斯定理的理解,还有一种解释思路,叫做“历时诠释”。“历时”意味着某些事情随着时间而发生,在本案例中,即假设的概率随着看到新数据而发生变化。

在考虑H(假设Hypothsis)和D(Data),情况下,贝叶斯定理的表达式可以写成: P(H|D)=P(H)P(D|H)/P(D)

在考虑H和D的情况下,每项意义如下:

P(H)称为先验概率,即在得到新数据前某一假设的概率。如没有得到掷硬币结果前,我们先假设正反面概率各位50%。

P(H|D)称为后验概率,即看到新数据后,我们要计算的该假设的概率。

P(D|H)是该假设下得到这一数据的概率,称为似然度。

P(D)是任何假设下得到这一数据的概率,称为标准化常量。

我们可以分析下各个数值的特点。

先验概率是偏主观性的,对某一先验概率,不同的人会有不同的判断,比如硬币正反面出现的概率这个问题。有点人假设硬币均匀,正反面概率应该是各50%;另一部分人假设硬币其实并不是完全均匀的,正反概率应该是接近但不等于50%。这就是先验概率的主观性表现。

似然度比较好理解,在曲奇饼问题中曲奇饼来自哪个碗,则我们就计算那个碗中香草曲奇饼的概率

标准化常量:在所有的假设条件下这一数据出现的概率。比如在曲奇饼问题中,仅有两个假设:碗A或碗B,他们可以用全概率公式计算P(D)。W代表碗筷,Wa代表碗a,Wb代表碗b

P(D)=P(Wa)P(D|Wa)+P(Wb)P(D|Wb)

朴素贝叶斯分类器算法

有了前面的知识准备,我们接下来简单了解下朴素贝叶斯分类器算法,该算法描述摘自《机器学习实践指南-案例应用解析(第2版)》(P473-474)。

算法描述:

获取样本文本,将样本人工分类整理,并进行标记。(机器学习的关键是有人工标注后的数据,而且是大量的标注数据,这样才能训练好一个模型。)

对每个类别下的文本分词

移除文本中的垃圾词条(可以理解为移除去停词,这样可以有效降低特词数目,达到降维提高运行效率的目的)

将整理后的词条合成样本文本的特征词组,计算词条频率。例如,假设有3类文本,词条i在类别A、B、C中出现的次数分别为COUNTi(A)、COUNTi(B)、COUNTi(C),每个类别的词条总数为WORDCOUNT(A)、WORDCOUNT(B)、WORDCOUNT(C),那么可以计算出每个词条在相应类别中的频率。比如某类文本有100个词,而“冬天”出现了5次,那么“冬天”一词在该文本中的词频是0.05

根据词条频率信息,计算词条在各类别文本的先验概率。词条i的各类别先验概率计算公式为:

Pi(A)=COUNTi(A)/WORDCOUNT(A)

Pi(B)=COUNTi(B)/WORDCOUNT(B)

Pi(C)=COUNTi(C)/WORDCOUNT(C)

读取未知的文本数据,分词、移除垃圾词,然后形成样本特征词组

将未知文本特征词条的先验概率带入贝叶斯公式中,计算后验概率,取出最大的后验概率所属的类别即为文本所属类别。

更多内容

文本分析

数据分析

神奇的python

爬虫

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值