逻辑回归的想法是用回归的方法来解决分类问题,然而直接用线性回归达不到我们想要的效果如下图(原因不再赘述),所以我们选取了sigmoid函数来进行拟合,原因以后阐述。
所以我们选择了如下的函数来拟合:
然而,应该怎样定义它的CostFunction呢?同样,线性回归为何选用最小二乘法的CostFunction?
先给出不准确的定义:这个Cost函数就只有一个极值点,且为极小值(如何判断?导数为0点只有一个,且当x大于极值点时,导数恒大于0,所有的能用梯度下降来拟合的函数必须满足这一关系)
其实,CostFunction的选取来源于极大似然估计:
以线性回归为例:
我们可以把y表示成以下形式:
其中最后的误差项代表我们未考虑的因素带来的误差(比如预测房价是我们没有考虑采光这一特征),且假设这个误差项服从均值为0的高斯分布,那么误差项的概率密度为:
那么,预测出来的y的概率密度为:
以下,我们要用最大似然估计来确定theta的值,是我们预测的结果概率最大(具体参见概率密度定义):
用对应公式求得:
取对数得到costFunction:
可知,要使上式最大就是是减号后面的部分最小,即得到了我们需要的CostFunction!
逻辑回归也是一样,,只是不是梯度下降,是梯度上升,如下:
最大似然估计为:
取对数得到CostFuction:
这回,theta需要使上式最大!很明显,上式只有一个极大值,应该是梯度上升!所以得到:
得到theta的更新式为:
综上:logistic回归与线性回归还是有很大的区别的,不仅在于拟合曲线不一样,CostFunction也不同,只是最后换算后theta的更新表达式相同罢了,具体是巧合还是必然,待研究以后来此说明。
具体的代码参见下一篇博文,思路参见点击打开链接
补充:其实关于上述论述还有其他的解释和说明,但实质并不冲突。