2.2.3 朴素贝叶斯算法
K近邻算法和决策树算法的共同特点是都不需要进行训练。训练是指利用已知类别的数据去构造一个数学模型,这个模型是通过反复计算得到的,可以用来判断新的、类别不明的数据属于什么类别。朴素贝叶斯算法就是一种需要训练的分类方法。
朴素贝叶斯算法首先统计每一类中各种数据出现的可能性,也就是概率;然后利用这些概率来计算某种数据属于任何一类的可能性有多大。
仍然前面的电影数据为例,将6部老电影的打斗镜头个数F按照小于40、大于或等于40与小于80之间、大于或等于80分成三个区间,并以同样的方法,将接吻镜头个数K和爆破镜头个数B也分成三个区间,如表2.3所示。
表2.3 根据电影镜头个数划分区间
朴素贝叶斯算法的计算步骤如下:
(1)根据某类条件,按某特征计算数据出现的概率P。下文中P(A)是指A事件发生的概率,P(A|B)是B事件发生的情况下,A事件发生的概率,即条件概率。根据表2.3可以得到:
P(F≥80|爱情片)=0
P(40≤F<80|爱情片)=0.5
P(F<40|爱情片)=0.5
P(K≥80|爱情片)=1
P(40≤K<80|爱情片)=0
P(K<40|爱情片)=0
(2)计算某类数据出现的概率。根据表2.3可以得到:
P(爱情片)=2/6
P(战争片)=1/6
P(动作片)=2/6
P(其他类型)=1/6
(3)根据某特征计算某类数据归属每一类的概率。在上述的电影数据中,当前电影具有F<40、K≥80、B<40的特征时,可得知当前电影属于爱情片的概率为:
P(F<40|爱情片)×(K≥80|爱情片)×P(B<40|爱情片)×P(爱情片)=0.5×1×1×2/6=1/6
属于战争片的概率为0,属于动作片的概率为0,属于其他类型影片的概率为0,故可以得出结论:当前电影属于爱情片。
朴素贝叶斯算法的缺点是有时候两条假设都得不到满足;此外,在某些场合难以获得准确的先验概率。