【NLP冲吖~】一、朴素贝叶斯(Naive Bayes)

0、朴素贝叶斯法

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布,然后基于此模型,对给定的输入 x x x,利用贝叶斯定理求出后验概率最大的输出 y y y

朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。

从数学角度,定义分类问题如下:
已知集合 C = y 1 , y 2 , . . . , y n C = {y_1,y_2,...,y_n} C=y1,y2,...,yn I = x 1 , x 2 , . . . , x n I = {x_1,x_2,...,x_n} I=x1,x2,...,xn,确定一个函数映射 y = f ( x ) y = f(x) y=f(x),使得任意 x i ∈ I x_i∈I xiI有且仅有一个 y i ∈ C y_i∈C yiC,使得 y i ∈ f ( x i ) y_i∈f(x_i) yif(xi)成立。

其中, C C C叫做类别集合,其中每一个元素都是一个类别,而 I I I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f

1、贝叶斯公式

P ( B ∣ A ) = P ( A ∣ B ) P ( B ) / P ( A ) P(B|A) = P(A|B)P(B) / P(A) P(BA)=P(AB)P(B)/P(A)
我们将B看作类别,A看作特征。即:
P ( 类别 ∣ 特征 ) = P ( 特征 ∣ 类别 ) P ( 类别 ) / P ( 特征 ) P(类别|特征) = P(特征|类别)P(类别) / P(特征) P(类别特征)=P(特征类别)P(类别)/P(特征)
求得 P(类别|特征),我们就可以通过贝叶斯公式进行分类!

2、 贝叶斯公式的本质

贝叶斯公式主要是描述了两种条件概率之间的关系,即P(AIB)与P(BIA)的关系。
P(A) 指事件A的先验概率,即在没有任何条件的情况下吗,对事件的基本判断。
P(AIB) 指后验概率,是在条件B之下事件A发生的概率。
P(BIA)/P(B) 相当于一个调整因子,使得先验概率经过调整得到后验概率,当这部分等于1,说明事件B的加入对于判断A的可能性没有帮助,先验等于后验。当它大于1,说明A发生的概率由于B的加入增大了。

3、分类案例

已知数据:

长毛/短毛 粘人/不粘人 攻击性强/弱 胆子大/小 是否纯种 是否好养
长毛 粘人 纯种 不好养
短毛 粘人 纯种 不好养
长毛 不粘人 纯种 不好养
长毛 粘人 纯种 不好养
长毛 粘人 非纯种 不好养
短毛 不粘人 纯种 好养
短毛 粘人 纯种 好养
长毛 不粘人 非纯种 好养
短毛 粘人 纯种 好养
长毛 粘人 非纯种 好养

根据已知数据,判断 短毛、粘人、攻击性弱、胆子大的非纯种猫是否好养。

P(好养|短毛、粘人、攻击性弱、胆子大、非纯种) = P(短毛、粘人、攻击性弱、胆子大、非纯种|好养)*P(好养) / P(短毛、粘人、攻击性弱、胆子大、非纯种)

P(短毛|好养) = 3 / 5
P(粘人|好养) = 3 / 5
P(攻击性弱|好养) = 4 / 5
P(胆子大|好养) = 3 / 5
P(非纯种|好养) = 2 / 5
P(好养) = 1 / 2
P(短毛) = 4 / 10 = 2 / 5
P(粘人) = 7 / 10
P(攻击性弱) = 5 / 10 = 1 / 2
P(胆子大) = 7 / 10
P(非纯种) = 3 / 10

同理:
P(短毛|不好养) = 1 / 5
P(粘人|不好养) = 4 / 5
P(攻击性弱|不好养) = 1 / 5
P(胆子大|不好养) = 4 / 5
P(非纯种|不好养) = 1 / 5
P(不好养) = 1 / 2
P(短毛) = 4 / 10 = 2 / 5
P(粘人) = 7 / 10
P(攻击性弱) = 5 / 10 = 1 / 2
P(胆子大) = 7 / 10
P(非纯种) = 3 / 10

可得:P(好养|短毛、粘人、攻击性弱、胆子大、非纯种) > P(不好养|短毛、粘人、攻击性弱、胆子大、非纯种)【只比较分子即可】

因此,可得 短毛、粘人、攻击性弱、胆子大的非纯种猫 好养。

4、 朴素贝叶斯为什么朴素?

其实朴素贝叶斯算法假设每个特征之间是相互独立的,这是算法的使用前提。朴素指的就是这一前提。

5、朴素贝叶斯分类算法的优缺点

优点:算法逻辑简单,易于实现;分类时,消耗时间空间资源少。

缺点:朴素贝叶斯算法的前提条件是特征相互独立,但是在实际情况中,特征之间往往不会那么理想,特征数较多或者特征之间相关性较大时,分类效果不会很好。

因此,**当特征之间的相关性较小是,我们可以忽略其相关性而使用朴素贝叶斯算法进行分类,分类效果会好很多。**当然,也有后续算法会对其改进。

6、 朴素贝叶斯在NLP中的应用

垃圾邮件分类:参考https://zhuanlan.zhihu.com/p/155632712
文本分类:参考https://blog.csdn.net/qiaowu898/article/details/107634195
。。。

你可能感兴趣的:(自然语言处理NLP,自然语言处理,人工智能,机器学习)