泛统计理论初探——朴素贝叶斯

数据挖掘-朴素贝叶斯

朴素贝叶斯算法
朴素贝叶斯算法是机器学习里较为初级的算法,它的朴素的含义是因为翻译的问题,英文是Naive Bayes,即简单贝叶斯。
该方法在初期被提出时常被用于识别垃圾邮件,是较为经典的基于概率的一种分类方法。在竞赛中会使用该方法做一个初步的使用,也可以在集成学习中把该方法作为一种独立的预测方法和其他预测方法一起集成预测。
有基本概率论基础的朋友一定知道,该方法其实和概率论中的贝叶斯概率公式是一样的。
P(U|V)=(P(U,V))/(P(V))=(P(V│U)×P(U))/P(V)
其中U和V分别代表事件,P(U,V)代表U和V同时发生的概率,P(U|V)代表在V事件发生后,U事件发生的条件概率。P(V|U)代表在U事件发生后,V事件发生的条件概率。
在这里插入图片描述
由于事件的发生有先后,所以使用条件概率可以计算出的概率能更好刻画后一种事件发生时的概率。将这个思路使用在数据挖掘中,可以通过刻画基于自变量V基础上因变量U发生的条件概率来求解一些分类问题。
朴素贝叶斯方法之所以称之为朴素,其原因在于计算P(V|U)时,把该概率值进行拆分,因为假设自变量之间没有关联,即事件同时发生的概率等于事件单独发生的概率的乘积,因此朴素贝叶斯公式的计算较为简单,也便于理解。
但是由于真实的环境下,自变量之间是不独立的,即有些变量存在某种相关性,所以此时朴素贝叶斯方法不适用,需要使用贝叶斯网络方法。
如果碰上连续数据时,比如自变量中包含高度、质量等,可以先假设自变量数据服从正态分布,然后使用正态分布的密度函数对连续的值进行映射,得到概率相对值后,再代入朴素贝叶斯公式中进行计算。当然如果数据是服从偏态分布也可以使用伽马分布的密度函数等进行映射。但需要注意的是,如果经过密度函数映射得到的值代入朴素贝叶斯公式计算以后,得到的“概率值”是广义的概率值,只能通过比较这个广义的概率值去判定因变量的类别,其自身的值没有意义。
其实从广义上来说,如果自变量中的数据为连续值,可以使用高斯朴素贝叶斯方法;如果自变量的数据为离散值,且取值都是0和1,那么其实是伯努利朴素贝叶斯方法。因此对于不同的数据来说,可以使用不同的方法。
总的来说,朴素贝叶斯方法较为简单,和KNN算法的预测能力比,它的预测效果更准确,健壮性更强,并且需要的计算资源较小。而该方法的缺点是假设自变量之间是无关的,该假设较强且不太符合实际,因此在现实中直接使用该方法会导致预测不准确。当然,如果需要预测的问题恰好是自变量相关性较小的问题,那么朴素贝叶斯无疑是一个较好的方法。

发布了23 篇原创文章 · 获赞 24 · 访问量 4523

猜你喜欢

转载自blog.csdn.net/qq_26727101/article/details/100171842