Bootstrap

机器学习算法-朴素贝叶斯算法

一、朴素贝叶斯算法简介

        朴素贝叶斯算法是一种基础的分类算法,它是在贝叶斯原理的基础上,假定特征与特征之间相互独立。那特征之间相互独立是什么意思呢?简单来说,一个人的性别和国籍这两个特征就是相互独立的,一个人的性别并不会影响这个人的国籍,而一个人的身高就会影响他的穿衣尺寸,他的身高和穿衣尺寸就不是相互独立的。

二、如何理解朴素贝叶斯算法?

        我们在学习朴素贝叶斯算法之前,先回忆一下贝叶斯算法。对于贝叶斯算法,我们应该都学过 ,但大家也基本忘的差不多了,我们先简单回忆一下。

1、贝叶斯原理

        贝叶斯原理是由英国的一位叫贝叶斯的数学家提出来的,那它是用来解决什么问题的呢?

        比如,我们在买西瓜的时候,看见一个大的西瓜,用手拍了一下这个西瓜会发出咚咚咚的声音,并且这个西瓜还特别贵,那我们就觉得这个西瓜应该挺甜的。虽然这个西瓜不一定甜,但这些经验可以帮助我们在一定的概率下找到甜的西瓜。

        这就是贝叶斯原理:当我们在不知道这个事情的实际情况的时候,我们可以根据一些相关的条件来判断这个事物的本质。

        与贝叶斯原理相关的基础概念有以下三个:条件概率、先验概率和后验概率。

        条件概率:事件B在另一事件A发生的条件下发生的概率,记作P(B|A),在统计学中也称为似然函数。比如,西安在下雨后发生道路堵车的概率。

        先验概率:事件A或事件B根据经验来判断发生的概率,记作P(A)、P(B)。例如:根据经验判断西安发生下雨的概率为P(A),而根据经验判断西安发生堵车的概率为P(B)。

        后验概率:我们已经看到某个事情发生了,再判断这个事情发生原因的概率 ,即在事件已经发生后,推测其发生的原因。比如P(A|B)是已知B发生后A的条件概率,也叫做A的后验概率。比如,我们知道一个西瓜很甜,而西瓜很甜的原因可能是土壤好,阳光充足等,而这个时候,一个西瓜很甜是因为它的土壤非常好的概率,就是后验概率。

        实际上,贝叶斯原理就是根据先验概率和条件概率,得到后验概率。

2、朴素贝叶斯原理

        朴素贝叶斯就是在贝叶斯的原理上加了一个前提条件:所有的条件对结果都是独立发生作用的,即所有的条件之间都是相互独立的。

        我们先来看朴素贝叶斯公式:

        在该公式中,我们假设A代表西安堵车,B代表西安下雨,P代表事件发生的概率,所以我们可以得到以下几个概率:

        P(A):西安堵车的概率,也就是事件A发生的概率;

        P(B):西安下雨的概率,也就是事件B发生的概率;

        P(B|A):表示西安在堵车的情况下,下雨的概率,也就是在A的情况下,发生B的概率;

        P(A|B):表示西安在下雨的情况下,发生堵车的概率,也就是在B的情况下,发生A的概率。

        朴素贝叶斯公式就可以理解为:在西安下雨的条件下,求堵车的概率。根据过往的经验,我们可以得到:P(A)=60%,P(B)=30%,P(B|A)=40%,根据公式:P(A|B)=P(B|A)*P(A)/P(B)=40%*60%/30%=80%,也就是说,在西安下雨的情况下,有80%的可能会发生堵车。

三、朴素贝叶斯的实际应用场景

        在实际应用中,朴素贝叶斯适合应用于文本分类、情感分析、垃圾邮件分类等业务场景,因为这些数据的相互独立性更高。另外,朴素贝叶斯还会和协同过滤一起,使用到推荐系统当中。

四、朴素贝叶斯算法的优缺点

        朴素贝叶斯的优点:算法逻辑简单,因为它的核心是贝叶斯公式,它的实现过程是不需要训练的,算法计算的时候对资源也占用比较少。

        朴素贝叶斯的缺点:朴素贝叶斯有一个假设前提,就是各个条件之间相互独立,互不影响。这让它的使用非常有局限性,只有在条件非常少,并且相互独立的情况下,朴素贝叶斯的效果才比较好。而在现实世界中这种情况往往不存在,在面对条件个数比较多,或者条件之间有一些相关性的时候,应用朴素贝叶斯得到的效果就会差很多。

;