首先,对数几率回归和线性回归的一点直观上的理解:
线性回归目的是找到一条直线(或者超平面)尽可能地接近所有的训练数据点,而对数几率回归(二元)的目的是找到一条直线(或者超平面)尽可能地分开两种不同类别的数据点。
简单回顾下线性回归的思路:
线性回归试图找到一组参数Θ从而构建函数h(x),从而让h(x)尽可能地拟合或者说接近y。一般方法是构建损失函数,采用最小二乘法去最小化J(Θ)。
现在转到对数几率回归:
一开始接触对数几率回归的时候,存在着一点疑问,这看起来是一个分类问题,但是为什么算法的名字有“回归”二字。现在,我对这个问题的理解如下:
分类问题索要的结果非0即1,很明显是个离散的问题。而这里,我们不再要求直接给出分类结果,而是通过要求“分类结果为1的概率”进而得到分类结果(概率>=0.5分类结果为1,否则为0),而概率属于[0,1],分类,这样一个离散的问题也就变成了连续的问题。
然后折腾下对数几率回归的相关公式:
假设m个样本 标签为 y1……ym,设为给定x条件下y=1的概率
,
那么给定x条件下y=0的概率。
定义
各个观测样本之间相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数为
解释:
在训练数据中:按照标签y分为两类,y=0的和y=1的。
对于y=1的类,我们希望在已知其对应的X时候,我们的模型能够给出y=1这样的预测,或者说模型对y=1的自信程度(概率)越高越好。所以我们希望最大化pi
而对于y=0的类,我们希望相反的结果,也就是希望最小化pi,最大化1-pi。
总结起来,我们希望最大化的就是倒数第二个最重要的公式。
问题转化成了n+1个w为参数,目标函数最大化问题。
接着问题转化成L(w)似然函数最大化的问题,两边求ln
这样的方程可以写出n+1个,问题转化为求解n+1个方程的解,接下来可以使用牛顿迭代法等进行进一步求解。
文章中部分图片来源于 http://blog.csdn.net/ariessurfer/article/details/41310525