python实现贝叶斯分类,Python的文本分析包括
这两天看了一半《贝叶斯思维-统计建模的python学习法》。贝叶斯理论的推导过程是这本书的亮点,看一遍就能记住。虽然案例丰富有趣,但是代码部分很难理解。代码上来就用类,对pythonkkdhmgsjx不太友好。即使丹还有一个蛋疼,也不建议python初学者去拿这本书。但是可以学习理论知识,学习机器学习的时候很方便。
今天,我们来谈谈贝叶斯原理和朴素贝叶斯文本分类算法。出来好久了。
概率计算基础(基础的可以跳过))
条件概率
在其他事件B已经发生的情况下,事件A发生的概率。概率用p(ab)表示,读作“B条件下A的概率”。
联合概率
两件事同时发生的概率。A和B的联合概率表示为p(ab)或p) a,B)或p) ab)。
现在我们已经掌握了前面的基础知识,下面我们来看一下cookie问题,然后开始贝叶斯定理的推导。
饼干问题
如果有两块饼干,
碗A包含30个香草饼干和10个巧克力饼干。
碗里有20块这两种饼干。
现在,假设你看都不看就随机选择一个碗,拿着蛋糕,得到香草饼干。
问题:用碗A做香草饼干的概率有多大?
想法
这是一个条件概率的问题。我们想得到P(碗A香草蛋糕)。现在我们很容易知道p)香草蛋糕碗a )=3/4。把这两者联系起来,p)碗A香草蛋糕)就好算了。可惜P(AB)和p (ba)不一样。但是贝叶斯定理可以用一个概率计算另一个概率。
贝叶斯定理推导过程(记住表达式的跳过))))))))))))))))))))。
联合概率是可交换的,即p(aandb )=p) banda)
联合概率p[aandb]=p[b]p[ab]独立于任何事件A和b。
交换分两步进行,即p[banda]=p[a]p[ba]
根据步骤1的等式,存在p(b) p(ab )=p (a) a) p) ba ),其中以下等式成立。
将最终方程的两端除以p(b)得到p(ab )=p (a) a) p) ba )/p) b)
这是贝叶斯定理,推导过程比初中简单多了。让我们来计算一下饼干问题。
P(碗A香草蛋糕)=P(碗a)) p)香草蛋糕碗a )/P)香草蛋糕)。
P(碗a )=1/2 P)香草蛋糕碗a )=3/4 P)香草蛋糕)=5/8)) 5030 )=5/8,所以最后算出来就是P)碗A香草蛋糕)=3/5。
先验概率,后验概率,似然性,标准化常数
对于上述贝叶斯定理的理解,还有一种“历时性解释”的解释思路。“持续时间”是指随时间发生的事情。在这种情况下,假设的概率随着新数据的出现而改变。
假设假设假设)和d) D(数据),贝叶斯定理的公式可以写成p(hd )=p (h) h) p) dh )/p) d)
当考虑H和D时,它们各自的含义如下。
P(h)称为先验概率,是在获得新数据之前一个假设的概率。如果不能得到抛硬币的结果,假设正反概率分别为50%。
P(hd)称为后验概率,是我们在查看新数据后应该计算的那个假设的概率。
P(dh)是在这种假设下得到数据的概率,称为似然。
P(d)是在任何假设下都能得到数据的概率,称为标准化常数。
我们可以分析每个值的特征。
先验概率是主观的,对于某个先验概率,每个人的判断都不一样。比如硬币正反面的概率。有人假设硬币是均匀的,里面和外面的概率是50%;还有人假设硬币其实不是完全均匀的,相反的概率应该是接近的,而不是50%。这是先验概率的主观表达。
这似乎很容易理解,因为饼干问题,我们将计算饼干来自哪个碗,以及那个碗中有香草饼干的概率。
常数:该数据在所有假设下出现的概率。比如cookie问题,只有两个假设,盆A或者盆B,他们可以用全概率公式计算p(d)。w表示筷子,Wa表示碗A,Wb表示碗b。
p(d)=p)wa)p(d wa)p(d)WB)p)d)WB)d)WB)p)d)WB)p)d)WB)d)WB)p)d)WB)p)d)WB)p)w)d)w)w)p)w)w)w)p)w)w)d)w)d)w)w)d)w)d)w)d)w)d)w)d)w)w)p)w)p)w)w)p)p)w)p)d)w)d)w)d)w)w)p)p)w)w)p)p)w)p)p)w)p)p)
Annes贝叶斯分类算法
准备完前面的知识,我们来简单了解一下朴素贝叶斯分类器算法。算法的描述取自《机器学习实践指南-案例应用解析(第2版)》 (p473-474)。
算法解释:
获取样本文本,手动组织和标记样本。机器学习的关键是要有人工标注的数据,而且是大量的标注数据,可以训练模型。)
把课文分成不同的类别。
删除文本中的垃圾条目(可以理解为删除停用词。这样可以有效减少字数,降低维度,提高执行效率)。
将排序后的词条合成为样本文本的特征短语,并计算词条出现的频率。例如,有三种文本,条目I在类别A、B、C中出现的次数分别为counti(a)、counti(a)和counti(a),每个类别的条目总数为字数)A。
根据词条的频率信息,计算词条对各类文本的先验概率。I的每一项的先验概率的计算公式如下。
pi(a )=counti(a )/WORDCOUNT(A)())))))))).
pi(b )=counti(b )/WORDCOUNT(B)()))))))))))).
pi(c )=counti(c )/WORDCOUNT(C)))))))))).
读取未知文本数据,分词,去除垃圾词,形成样本特征短语。
将未知文本的特征词条的先验概率带入贝叶斯公式,计算后验概率,取出后验概率最大的所属类别,即为该文本所属的类别。
其他指南
文本分析
数据分析
太好了,蟒蛇
爬行动物
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。