前言
在学习和实践了线性回归模型后,我们终于来到了下一站——分类问题,分类问题中经典的算法称为逻辑回归.
逻辑回归模型引入
给定一些样本以后,我们首先需要选用一个合适的样本估测函数去估计样本值,首先如果使用线性函数去模拟可以吗?现在想要预测肿瘤良性与肿瘤大小的关系,看下面这些样本在坐标系上的分布.
此时使用线性回归可以得到如下图形:
若使用线性函数模拟,在本次模拟中,根据下列函数判定,模拟效果还不错:
可以在图像中看出,黄线左侧肿瘤预测为良性,右侧预测为恶性,目前看来一切都很正常,那我们再加入一个样本(18,1),得到的结果如下图:
预测的准确率低的离谱,这就说明在分类问题中,运用线性回归预测是不科学的,可能存在某些数据导致预测很差(不知道这叫不叫过拟合),那么,我们需要构造一个合理的预测函数,这个预测函数h的值最好能够满足,有一个函数完美的契合了这样的条件——sigmoid function.
sigmoid function——预测函数
这个函数表达式是这样的:
它的图像是这样的:
从图像上可以看出,当z<0时,,z>0时,,并且它是连续的,位于0和1之间,我们将代入函数,就可以得到满足条件的预测函数:
该预测函数的值可以看成类1的后验估计,即h的值可以表示预测类为1的概率.得到预测函数之后,接下来需要定义代价函数
cost function——代价函数
由于刚刚学习了线性回归,我们很自然的想到利用线性回归中的代价函数,即:
但是这样定义的代价函数对梯度下降求极值是不友好的,因为它是非凸函数,即存在许多极小值,我们知道样本服从的是0-1分布,而预测函数h为类1的后验估计,那么可以表示为如下形式:
类0的后验估计则为:
由于0-1分布的似然函数的形式如下:
我们可以代入,可以得到:
取对数得到:
我们将累加项提取出来分析一下:
由于对数似然函数求导是要求J的最大值,但是我们要求的是求最小值,所以我们在前面加上负号,即:
若y=1,若预测值为0,那么可以看出该项值趋于无穷大,即代价值非常大,若预测值为1,那么该项值为0,即代价值为0,若y=0,与之相反,可以看出该项很契合代价值的评估.也就是说该似然函数可以当做逻辑回归过程中的代价函数.
梯度下降
利用最大似然函数的求解过程,即求偏导,我们得到梯度下降过程中遵循的变化公式:
与线性回归的比较
- 当特征值相差较大时,逻辑回归也需要进行特征缩放.
- 线性回归样本总体满足高斯分布,逻辑回归满足伯努利分布即0-1分布.
- 两者其实在梯度下降过程中都使用了最大似然思想.只不过由于满足的分布不同,导致似然函数有差异.