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

本文解释了朴素贝叶斯算法如何通过数据和类别建模来判断类别,强调了条件独立性假设的重要性,以及如何通过极大似然估计求解条件概率。通过一个具体例题说明了算法的应用过程。
摘要由CSDN通过智能技术生成

原理:通过对数据和类别建模联合分布P(X,Y)来求给定数据x,判断所属类别y。

十万个为什么之一:为什么要建模P(X,Y)?有什么用呢?

强行解惑:我们知道如果想通过给定样本x,来判断所属类别y;即P(y|x)。贝叶斯的出发点则是P(y|x)=\frac{P(x,y)}{P(x)},这不······联合概率就出来了!!!

解决步骤:通过上面分析,我们需要求解P(y|x)=\frac{P(x,y)}{P(x)},不妨继续往下面推导试试,总得有个建模的流程吧:

                        P(y|x)=\frac{P(x,y)}{P(x)}=\frac{P(y)P(x|y)}{P(x)}=\frac{P(y)P(x^{(1)},x^{(2)},...,x^{(k)}|y)}{P(x)}

上式对于分母来说,其实是相同的,关键就在于分子P(y)P(x^{(1)},x^{(2)},...,x^{(k)}|y),P(y)不用多说,就是该类别的概率,直接根据训练集极大似然统计就行,而后面条件概率直接计算的话,复杂度极高;毕竟对于每个特征x^{(i)},可能的取值有S_i个;y的取值可能有K个(所属类别个数)。那么参数量为K\prod_{j=1}^{k}S_j,此为指数级复杂度。就是因为所有的特征联合到了一起才导致了这种结果;因此朴素贝叶斯很直接直接让上述条件概率的特征进行解耦。即条件独立性假设;不同的特征相互独立,不产生影响(虽然不大合理,最起码能求解问题,总比完全不能求要好吧!)。最终条件概率转化为\prod_{i=1}^kP(x^{(i)}|y),参数量直接变成了K\sum_{j=1}^{k}S_j。除了复杂度影响外,这种方式特征独立性还可以带来一个好处便是:如果直接建模特征的联合的话,我们知道,我们手头的数据集往往不包含数据特征的所有情况,那么由于有些特征组成没有出现,则我们统计得到的P(x^{(1)},x^{(2)},...,x^{(k)}|y)=0,这就很一刀切呀,收集的数据集中没有并不代表现实际不存在。

综上:我们要求解的P(y|x)其实也就是在求y=argmax_{y^*}P(y=y^*)\prod_{j}P(x^{(j)}|y=y^*),分母P(x)都一样就直接省略了。然后这个式子直接极大似然估计就好了,也就是统计数据集中各类别的先验概率,以及在类别确定下,特定特征出现的条件概率;然后相乘给出最大的y。

最后放一道例题帮助大家进一步巩固:15个样本,每个样本两个特征X^{(1)},X^{(2)},每个特征包含各自的可能取值情况。类别Y∈{-1,1}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅白Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值