【机器学习】朴素贝叶斯模型原理

介绍

首先我们需要搞清楚条件概率和联合概率的意思,可以通过下图进行描述:

                        

我们在通过一个图来讲解条件概率的意义:

                                               

可知:,即:即为我们的朴素贝叶斯模型

Demo

我们通过一个小的Demo来理解贝叶斯理论的思想(这里对比了一下knn模型,因此这里给了预测样本的各个特征的个数来计算余弦距离,而在贝叶斯模型中只需要知道样本包含哪些特征即可,因此在垃圾邮件分类,词特征的文章分类等情景应用广泛):

                   

上图可以知道,我们有6个训练样本,每个样本有两个特征来描述,电影类型列表示我们的目标值,即分类结果,可知包括爱情片和动作片两个类别。

通过统计训练样本的参数来对新样本进行预测(如果样本的特征很多我们可以对样本特征进行降维处理,具体之前博客介绍的filter降维,即过滤样本方差很低的特征,这种特征不能很好的描述样本的差异,或者通过PC主成分分析进行降维,PCA主成分分析主要思想是不改变样本个数的情况下进行特征降维,可以通过sklearn库进行PCA接口n_components设定保留特征的多少),我们给定了预测样本特征,通过特征来对样本进行预测,knn一般是通过测试样本与训练样本之间的距离,在选出最近的n(自己设定)个距离,再根据这些距离中查看每个样本的个数来决定测试样本最终属于哪一个类别。

而我们的朴素贝叶斯模型可以通过如下公式进行描述:

                                 

这里的F1,F2...表示我们的特征个数。我们的朴素贝叶斯模型中各个特征是相互独立的,因此该Demo中的P(F1,F2)=P(F1)*P(F2)。而且P(F1,F2|C)=P(F1|C)*P(F2|C)。不管C属于何种类别,贝叶斯模型的分母不会改变,因此我们只需计算分子部分结果。在计算之前我们先对各个类别的特征数量进行统计如下:(在实际工程中使用pandas库进行统计)

                              

公式的计算包括如下几个部分:

P(Fi|C)=Ni/N,Ni表示属于当前类别的样本特征Fi的数量,这里为6/298个(爱情片/动作片),N表示当前类别特征的总数,这里为291/315。

P(C)表示当前类别占总类别的比例,上图统计可知爱情片和动作片都是3个,因此两个类别的概率都为1/2.

对于一个未知的样本,我们根据这个样本所包含的特征进行预测,由于上述的案例特征较少,只有两个特征,因此我们通过如下一个Demo根据词特征个数进行文章类型的预测:

                 

在一篇文档中出现了影院,支付宝和科技等特征时,预测这个样本的类别,通过计算不同类别的概率大小预测该样本所属的类别。具体公式如下:

                        

而在实际工程中,概率为0的预测结果显然不合逻辑,我们通过添加拉普拉斯平滑系数进行改进,具体方法如下:

                                   

因此,最终的预测结果如下:

       

对比可知最终的预测文章类型的结果是科技类文章。 

总结

在进行机器学习算法的学习过程中一定要对算法原理进行透彻理解,然后才能对算法哪些场景下的应用有一定的认识。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值