??????? 这是一种基于贝叶斯定理和特征条件独立假设的分类方法。
??????? 所谓独立条件,就是两个事件之间相互之间没有影响,在机器学习中,就要求特征之间没有联系,实际上,这种要求一般是无法满足的。
????????? 对于结果,我们可以根据发生过的情况来推测。表示为p(y/x),也就是在特征x的提示下,y发生的概率。
现在我们从一个简单问题开始。比如有一条狗会因为主人的一句话做出三个反应,分布是
y = {蹲下,站立,转圈}。
主人可以发的指令分别是
x={乖狗狗, 可爱狗狗, 调皮狗狗, 笨蛋狗狗};
其中,狗狗做出的反应是可以计算出来,比如
p{蹲下} = 0.2,p{站立}=0.5, p{转圈}=0.3;
而p{X = x/Y = y}是可以分别计算出来的。因为我们可以重复口令100次,然后统计各个情况,计算出各个情况的概率。这种概率是观察到的,所以叫做先验概率。比如我们发现狗蹲下的时候,口令"调皮狗狗"出现了20次,所以p{X=调皮狗狗/Y=蹲下} = 0.2
我们的目标是,根据主人发出的口令计算出狗可能采用的动作的概率,这个叫做后验概率;
P{Y=y/X=x}
也就是根据出现的现象计算出可能的结果。
这种计算方法使用的是条件概率公式
分子可以带入乘法公式,分母可以使用全概率公式。
乘法公式:
全概率公式:
带入上式即可。
根据独立假设条件,如果有很多条件,那么我们就可以连乘求出对应的概率公式。
比如条件概率的公式,每一个特征可能多种可能的时候,下面公式就能计算取不同特征的组合预测的概率
比如X=x1,而x1有三个特征x11,x12,x13
求p(x=x1/y=1)的概率
可以转化为[p(x=x11/y=1)*p(x=x12/y=1)*p(x=x13/y=1)]*p(y=1)
写公式有点麻烦,全概率公式也是这么一个逻辑。
总结一下就是:条件发生时,同一个特征的不同取值的概率乘积
在实际中分母值其实是固定的,我们可以不用管这个了。
训练过程的损失函数为0-1损失函数,当结果与预期一致,则等于1,不一致等于0
训练过程也很简单,只需要计算P(x/y)就行了.
虽然是独立同分布,但是分布情况也有所不一样,主要是高斯分布,多项式分布,伯努利分布。sklearn中都是实现了。
优点是:计算很快,因为再计算之前要处理好先验概率,后面就只需要进行乘积了。对于多分类也很有效。
缺点:独立同分布很难满足,对于连续数值类型,要求它满足正态分布。
在进行朴素贝叶斯分类的时候,要消去相关特征