从朴素贝叶斯的角度推导logistic模型

从朴素贝叶斯的角度推导logistic模型


文章结构预览
1.朴素贝叶斯算法的理解
2.logistic模型简介
3.从朴素贝叶斯的角度解释为什么logistic模型的sigmoid函数可以表示概率
写在前面

啊啊啊,最近终于有一点时间来学点想学的东西了,开森!虽然还没开启研究僧生活,但是应导师要求,提前学习一点机器学习知识,于是最近在啃李航博士写的《统计学习方法》第二版(还得好好补一下数学啊!),顺便吐槽一下智能汽车这个专业,什么都要学,电器,机械,通信,计算机,控制,每个方向都要学他们的核心专业课,除了通信的信号与系统,我们学的简化版的感知信号处理,但是也被离散傅里叶,离散时间傅里叶,快速傅里叶等各种傅里叶折腾的够呛。反正现在是从运算放大器到tensorflow,从差速器到李亚普洛夫,从三心定理到傅里叶变换都在搞。跨度那是相当的大,如果每样都不钻进去学的话那就成了好读书不求甚解的仙人了,钻进去学的话也确实有够受的,如果再自学点单片机和尝试一下linux系统,那任务是相当的重了,最怕自己学到最后成了一个杂物柜,什么东西都装,但是成不了一个体系,希望一切的努力都会被善待吧,借CSDN的博客记录一下学习的心得与收获,在分享知识的同时也能与大家一起交流学到新知识,建立自己的工科体系。吐槽就到这里了,以上。
1.朴素贝叶斯算法的理解
在绝大多数机器学习算法中,朴素贝叶斯算法绝对算得上是个异类的存在,对于大多数的机器学习分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X),要么是条件分布P(Y|X)。但是朴素贝叶斯却是生成方法,也就是先根据数据集找到先验概率P(Y),然后找到每个特征值的P(X|Y),从而直接用P(X,Y)=P(Y)*P(X|Y)求出P(X,Y),然后用P(Y|X)=P(X,Y)/P(X)得出P(Y|X)。
什么是贝叶斯?和传统的频率学派不同,贝叶斯学派的思想可以概括为后验概率=先验概率×可能性函数,这样说太抽象了,先贴出大家喜闻乐见的贝叶斯公式:
在这里插入图片描述
P(A)就是我们的先验概率,根据历史经验或者数据集得到,A可以成是数据集的标签,如果是垃圾邮件类的问题的话就是A=有效邮件or垃圾邮件,也就是你要分的类别。P(B|A)/P(B)就是可能性函数,也可以当成一个调整因子,也就是说你相信先验概率的程度,当这个调整因子大于1,也是是说事件B的发生对A事件的发生起到了促进作用即P(A|B)>P(A),反之,当这个调整因子小于1,也是是说事件B的发生对A事件的发生起到了抑制作用即P(A|B) 由全概率公式可得:
在这里插入图片描述
带入贝叶斯公式:
在这里插入图片描述
可得:
在这里插入图片描述
好了,以上这些步骤都是贝叶斯估计的内容,那么为什么要叫朴素贝叶斯估计呢,下面这一步即赋予了贝叶斯估计朴素之名,将:

在这里插入图片描述
带入贝叶斯公式,原式变为:
在这里插入图片描述
在具体应用中P(Yk|X)就等于P(Y=ck|X=x),P(Yk)=P(Y=ck)。我们需要假设每个特征值xj是独立的,是互不影响的,才能够使P(X1=x1,X2=x2…Xj=xj|Y=ck)=P(X1=x1|Y=ck)P(X2=x2|Y=ck)…P(Xj=xj|Y=ck)P(Y=ck)成立。这是一个妥协的假设,为了使计算方便,但是特征值很多时候都不是独立的,比如一个特征值是是否下雨,一个特征值是是否刮风,标签Y是是否出去玩,一般刮风都会伴随着下雨,二者不是独立的,如果这个假设成立,那么特征值的协方差矩阵必须是对角矩阵,这个概率还是比较低的。总结一下就是朴素贝叶斯算法就是假设特征值互相独立的贝叶斯算法。
在实际应用中,我们只需要知道先验概率P(Y=ck)和P(Xj=xj|Y=ck)便可以用:
在这里插入图片描述
进行朴素贝叶斯估计,选择使y最大的ck类作为所分的类别。朴素贝叶斯算法是一个典型的生成分类算法。
更加具体的朴素贝叶斯算法细节就不展开了,详细算法可以参见李航博士的《统计学习方法》第二版第四章。
2.logistic模型简介
logistic 回归又叫对数几率回归,适合数值型的二值型输出的拟合,它其实是一个分类模型,比如根据患者的医疗数据判断它是否能被治愈。
我们考虑1个输入的n维数据X=(x1,x2,x3…xn),我们对输入数据进行线性加权得到:
在这里插入图片描述
前面说到,logistic回归用于分类,假设得到的类别为0或者1,那么可以使用sigmoid函数处理输入,这个函数类似于阶跃函数但是又是连续型函数,看下这个函数长什么样:
从朴素贝叶斯的角度推导logistic模型_第1张图片
sigmoid(x)表征输入数据x归属于1类的概率。
当x<0时,sigmoid(x)<0.5,可以说x归属于0类的概率比较大;
当x>0时,sigmoid(x)>0.5,可以说x归属于1类的概率比较大;
将g(x)作为sigmoid函数的输入可以得到:
在这里插入图片描述
这样就得到了输入数据x最终属于类别 1 的概率。
在logistic回归中,我们一般考虑使用交叉熵作为损失函数,因为采用均方差作为损失函数在梯度下降过程中,当sigmoid(x)趋近于0或1时梯度趋近于0,导致算法收敛极慢,也就是梯度消失问题。
对f(x)做一个简单的变换:
在这里插入图片描述
将f(x)作为类后验估计P(y=1|x)(注意注意!!!,这个条件是不加证明给出的,应该很多同学都困惑过,为什么经过一个sigmoid函数后就变成概率了,本文第三部分内容就是从朴素贝叶斯的角度对此条件加以证明。),上式可写为:
在这里插入图片描述
那么从而可以得到:
在这里插入图片描述
合并上式得到似然函数:
在这里插入图片描述
带入数据可得似然函数为:
在这里插入图片描述
m是这组数据集的样本数量。
然后我们的目标是求出使这一似然函数的值最大的参数估计,最大似然估计就是求出参数w0,w1,w2…wn,n代表特征值向量是n维的。使得上式取得最大值,需要用到梯度下降算法,连乘不好求梯度,取ln将连乘变为求和:
在这里插入图片描述
对上式取负号然后采用梯度下降法求最小值便可以得到参数向量,logistic回归模型就训练完毕了。
3.从朴素贝叶斯的角度解释为什么logistic模型的sigmoid函数可以表示概率
在推导之前,我们假设自己是贝叶斯学派的一员了啊,假设数据连续,且每一维x服从高斯分布,原谅我是个数学渣渣,只对经常用的模型熟悉,之前做卡尔曼滤波和拓展卡尔曼滤波算法时对高斯分布用的太多了,因为卡尔曼滤波黄金五公式推导的基础就是假设带噪声的信号服从高斯分布,这样说老祖卡尔曼也是贝叶斯学派的一员咯。扯远了,拉回来!好了,既然每一维特征值x满足高斯分布,那么假设:
在这里插入图片描述
Y服从伯努利分布,即0~1分布,则根据朴素贝叶斯得到:
在这里插入图片描述
分子分母同除以分子可得:
在这里插入图片描述
对分母后面一部分取ln可得:
从朴素贝叶斯的角度推导logistic模型_第2张图片
其中:
从朴素贝叶斯的角度推导logistic模型_第3张图片
化简可得:
在这里插入图片描述
由于假设Y满足伯努利分布,可令P(Y=1)=φ得到:
从朴素贝叶斯的角度推导logistic模型_第4张图片
化简可得:
从朴素贝叶斯的角度推导logistic模型_第5张图片
其中:
在这里插入图片描述
在这里插入图片描述
由此从朴素贝叶斯中推导出了logistic模型。以上!

你可能感兴趣的:(机器学习,学习心得,机器学习,深度学习)