python大法攻略机器学习和人工智能入门首页投稿(暂停使用,暂停投稿)

python与机器学习(三.朴素贝叶斯)

2017-09-10  本文已影响15人  眼君

优点:在数据较少的情况下仍然有效,可以处理多类别问题。

缺点:对于输入数据的准备方式较为敏感。

适用数据类型:标称型数据。

贝叶斯公式

P(c/x) =P(x,c)/P(x)= P(x/c)P(c)/P(x)

公式含义:

左边P(c/x)表示在已知x条件下,c事件发生的概率。

右边P(x,c)表示事件x,c同时成立的概率。

贝叶斯公式分类的基本思想

假设数据图上有个点(x,y),我们定义P1(x,y)为数据点(x,y)属于1类的概率,P2(x,y)为数据点(x,y)属于2类的概率,我们可以用下列规则来判断它们的类别:

如果P1(x,y) > P2(x,y),那么我们认为点(x,y)属于1类。

如果P2(x,y) > P1(x,y),那么我们认为点(x,y)属于2类。

根据贝叶斯公司,我们知道数据点(x,y)属于1类的概率为P(C1/x,y)=P(x,y/C1)P(C1)/P(x,y),属于2类的概率为P(C2/x,y)=P(x,y/C2)P(C2)/P(x,y),然后比较P(C1/x,y)与(C2/x,y)的大小来判断(x,y)是属于C1还是C2。

贝叶斯与文本分类

以下这几个函数用于比较两个向量中相同的词条

比较词条

基于上面三个函数,我们能够知道一个词是否出现在一篇文档中,也知道该文档属性的类别了。我们现在要重写贝叶斯准则,将之前的x、y替换为w。

P(ci|w) = P(w|ci)P(ci)/P(w)

我们将使用以上公式对每个类计算,然后比较概率值的大小。首先通过类别i中文档数除以总的文档数来计算概率P(ci)。接着计算P(w|ci),这里假设w展开为一个个独立特征,那么就可以将上述概率写作P(w0,w1,w2,w3...wn|ci),由于各特征独立,也可以写作P(w0|ci)P(w1|ci)P(w2|ci)P(w3|ci)...P(wn|ci)来计算上述概率,这就极大的简化来计算过程。

我们在来写一个朴素贝叶斯分类器训练函数

朴素贝叶斯分类器训练函数

这个函数基于以上三个函数的结果进行进一步计算,前提是认为类别只有1和0,计算得出P(w0|c0)和P(w1|c1)

上一篇 下一篇

猜你喜欢

热点阅读