用Python Scikit-learn 实现机器学习十大算法--朴素贝叶斯算法(文末有代码)

本文详细介绍了如何使用Python Scikit-learn库实现机器学习中的朴素贝叶斯算法,包括理论基础、公式推导、参数估计、算法流程、优缺点以及Scikit-learn的三种朴素贝叶斯模型。文中还提供了实际的Python代码示例,通过对比不同分类算法的性能,展示了朴素贝叶斯在实际应用中的效果。
摘要由CSDN通过智能技术生成

 

 

1,前言

很久不发文章,主要是Copy别人的总感觉有些不爽,所以整理些干货,希望相互学习吧。不啰嗦,进入主题吧,本文主要时说的为朴素贝叶斯分类算法。与逻辑回归,决策树一样,是较为广泛使用的有监督分类算法,简单且易于理解(号称十大数据挖掘算法中最简单的算法)。但其在处理文本分类,邮件分类,拼写纠错,中文分词,统计机器翻译等自然语言处理范畴较为广泛使用,或许主要得益于基于概率理论,本文主要为小编从理论理解到实践的过程记录。

2,公式推断

一些贝叶斯定理预习知识:我们知道当事件A和事件B独立时,P(AB)=P(A)(B),但如果事件不独立,则P(AB)=P(A)P(B|A)。为两件事件同时发生时的一般公式,即无论事件A和B是否独立。当然也可以写成P(AB)=P(B)P(A|B),表示若要两件事同事发生,则需要事件B发生后,事件A也要发生。

由上可知,P(A)P(B|A)= P(B)P(A|B)

          推出P(B|A)=

其中P(B)为先验概率,P(B|A)为B的后验概率,P(A|B)为A的后验概率(在这里也为似然值),P(A)为A的先验概率(在这也为归一化常量)。

 

由上推导可知,其实朴素贝叶斯法就是在贝叶斯定理基础上,加上特征条件独立假设,对特定输入的X(样本,包含N个特征),求出后验概率最大值时的类标签Y(如是否为垃圾邮件),理解起来比逻辑回归要简单多,有木有,这也是本算法优点之一,当然运行起来由于得益于特征独立假设,运行速度也更快。


. 参数估计

3,参数估计


由上面推断出的公式,我们知道其实朴素贝叶斯方法的学习就是对概率P(Y=ck)和P(X(j)=x(j)|Y=ck)的估计。我们可以用极大似然估计法估计上述先验概率和条件概率。


其中I(x)为指示函数,若括号内成立,则计1,否则为0。李航的课本直接给出了用极大似然(MLE)估计求出的结果,并没给推导过程,具体推导过程可参考知乎链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值