记得刚工作的时候,用的第一个模型就是逻辑回归。虽然从大二(大一暑假参加系里建模培训,感谢老师!)就参加了全国大学生数学建模比赛,直到研究生一直在参加数学建模,也获了大大小小一些奖。
什么是逻辑回归
1.1线性回归函数
1.2逻辑函数
1.3逻辑回归函数
如何求解逻辑回归中的参数
2.1极大似然函数
2.2构造损失函数
2.3用梯度下降法求解参数

由于逻辑回归的原理是用逻辑函数把线性回归的结果(-∞,∞)映射到(0,1),故先介绍线性回归函数和逻辑函数,在本节的第三部分介绍逻辑回归函数。
线性回归函数的数学表达式:

其中xi是自变量,y是因变量,y的值域为(-∞,∞),θ0是常数项,θi(i=1,2,...,n)是待求系数,不同的权重θi反映了自变量对因变量不同的贡献程度。
不管是一元线性回归分析还是多元线性回归分析,都是线性回归分析。
2 逻辑函数(Sigmoid函数)
2.1 逻辑函数的数学表达式

2.2 逻辑函数的图像

图1 sigmod函数大致图像
趋于∞,g(z)趋于0,当z趋于∞,
趋于0,g(z)趋于1。


在逻辑回归的由来一文中详细推导了得出逻辑回归函数的步骤,也得知逻辑回归的因变量g(y)就是伯努利分布中样本为1的概率。

把线性回归函数的结果y,放到sigmod函数中去,就构造了逻辑回归函数。
由y的值域和sigmod函数的值域知,在逻辑回归函数中用sigmod函数把线性回归的结果(-∞,∞)映射到(0,1),得到的这个结果类似一个概率值。

上式中
,现在把逻辑回归的结果g(y)看成某个事件发生的概率,那么这个事件不发生的概率就是1-g(y),两者的比值称为几率(odds)。令g(y)=p,可以得到如下公式:

即线性回归的结果等于对数几率。
如果我们把车贷中违约(不按期还款产生坏账)客户的样本标签定义为1,正常(按期还款)客户的样本标签定义为0。可以进一步把逻辑函数的值定义为客户违约的后验概率。

如果历史上我们积累了大量的违约客户和正常客户的样本数据,比如违约客户和正常客户的年龄、工资、房贷、在第三方平台借款数目等等众多标签。
这些标签就是逻辑回归函数中的xi,我们可以用这些样本数据训练逻辑回归模型,并求解得到变量x的参数(系数)θ。
标签数据年龄、工资等是已有信息,如果参数(系数)θ也已经求出,把标签数据和参数代入逻辑回归模型,就可以预测任一客户违约的概率。

1 极大似然函数
结合逻辑回归函数,如果我们已经积累了大量的违约客户和正常客户的样本数据,利用极大似然函数由果溯因,估计出使得目前结果的可能性最大参数(系数)θ,有了参数我们就可以求任何一个客户违约的概率了。
我们上文提到过客户违约的后验概率:

相应的可以得到客户不违约的概率:



不违约的后验概率可以写成:


其中y∈{0,1}。当y=0时,上式为不违约的后验概率,当y=1时,上式为违约的后验概率。
现在我们有m个客户的观测样本



结合逻辑回归中的极大似然函数,如果取整个数据集上的平均对数似然损失,我们可以得到:

即在逻辑回归模型中,最大化似然函数和最小化损失函数实际上是等价的(求最大化对数似然函数对应的参数θ和求最小化平均对数似然损失对应的参数θ是一致的),即:

3 用梯度下降法求解参数
先以一个人下山为例讲解梯度下降法的步骤:
step4:判断是否下山,如果还没有到最低点继续步骤一,如果已经到最低点,则停止。
从上面的分析知,用梯度下降法求解参数最重要的是找到下降最快的方向和确定要走的步长。
那么什么是函数下降最快的方向?
如果学过一元函数的导数,应该知道导数的几何意义是某点切线的斜率。除此之外导数还可以表示函数在该点的变化率,导数越大,表示函数在该点的变化越大。

图2 曲线的导函数


对于函数的某个特定点,它的梯度就表示从该点出发,函数值变化最为迅猛的方向。至此梯度下降法求解参数的方向已经找到,那就是函数的梯度方向。
接下来推导损失函数的梯度(偏导数):
由损失函数的公式知:



至此,找到了梯度下降中的方向,只要给定一个步长就可以用迭代的方式来求待求参数,迭代的公式为:

注:把当前位置的θ代入-
得到的值,才是在该点处梯度下降的步长。

则迭代公式可以进一步写为:

一般是迭代达到一定次数或者学习曲线小于某个阈值时,停止迭代。在sklearn库中调用LogisticRegression时,一般取里面的默认参数tol=0.0001,最大迭代次数 max_iter=100即可。
注:关于学习率,吴恩达老师的机器学习课介绍了动态学习率的方法,也就是随着迭代的次数不断地减小学习率的值,实际上,我们假设在刚开始下山时是处于一个较高的位置,这时候我们是可以将“步子”迈大一点而不用担心“跨过头”的,但是随着越来越靠近山底(迭代的次数越来越多),这时候我们的“步子“应该是越来越小,直到到达最低点。
一直对逻辑回归,这个风控建模中必不可少的一员,抱有很大的敬意。逻辑回归三部曲的文章也从2月份断断续续准备到了4月份,有些数学推导还不够严谨,总感觉有还可以完善的地方,今天先和大家分享三部曲中的第一部和第二部,第三部逻辑回归项目实战争取在下周和大家见面,大家有好的建议可以私信我。
https://zhuanlan.zhihu.com/p/30116307https://zhuanlan.zhihu.com/p/43492827https://zhuanlan.zhihu.com/p/59137998https://zhuanlan.zhihu.com/p/111260930https://baijiahao.baidu.com/s?id=1639202882632470513&wfr=spider&for=pc
往期回顾:
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。