逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。在信贷风控领域最常用的广义线性模型就是逻辑回归。其实逻辑回归线性可分和线性回归里面的单/多变量线性回归类似,只不过在原有的基础上增加了sigmod函数。其使用的分类函数是sigmoid函数,其可以将模型结果输出约束在【0,1】之间。
逻辑回归主要用于解决分类问题,比如:客户是否该买某个商品,借款人是否会违约等问题。实际上,“分类”是逻辑回归的目标和结果,中间过程依旧是涉及“回归”问题,因为通过逻辑回归模型,我们得到的是0-1之间的连续型结果值,即概率,例如借款人未来违约的概率。然后给这个概率加上一个合理的阈值,就变成了分类问题。
▍逻辑回归原理
首先二分类的问题,输出概率P大于某个值时,则判别为类别A,输出概率P小于某个值的时候判为类别B。sigmod函数主要作用是:对于任意实数,那么对应任何的y的取值范围,即将输入的任意实数映射到0-1之间,实现了数值到概率的转换。具体函数为:
逻辑回归的预测函数:
逻辑回归参数求解:上面得到了预测函数,那么我们如何求解参数呢?这里采用了最大似然估计。其中极大似然估计是数理统计中参数估计的一种重要方法。
▍逻辑回归求解
基于极大似然估计进行逻辑回归模型最优参数求解,根据定义损失函数。例如信贷风控违约问题来说,目标函数Y为0就是未违约,1就是已违约。逻辑回归模型预测的Yn根据合理阈值会进行分类,落到0或1分类上。求解损失函数(所有样本的|Y-Yn|求和)最小化问题的最优模型参数,再结合AUC和KS来判断模型性能效果。
其思想就是一个事件发生了,那么发生这个事件的概率就是最大的。这里我们可以这么理解:我们有一批数据,并且他们对应的分类A,B用0,1来表示,即对应的,我们希望寻找一组参数使得每组数据发生得概率最大(最好每个数据x都和其分类一一对应)。即:
对数似然函数为:
最大似然估计就是求使l(θ)取最大值时的θ,其实这里也可以使用梯度上升法求解,求得的θ就是要求的最佳参数。
正则化项主要是对各个参数的权重做控制的函数,也是惩罚项,它可以让整个曲线更平滑,可以有效的抑制过拟合。学习过程中,我们碰到的就是「L1正则化项、L2正则化项」,它们分别又被称为:「lasso回归项、岭回归项」。L1有一个特殊的功能:它可以稀疏化的取值,即会让某些值为0。L2正则化可以防止模型过拟合,在一定程度上,L1也可以防止过拟合,提升模型的泛化能力;
过拟合问题,模型训练过程中要避免过拟合问题,下面左图即为欠拟合,中图为合适的拟合,右图为过拟合:
▍逻辑回归应用
当数据不能够通过线性边界(直线、平面等)进行区分分类的时候,为了更好的拟合数据,这个时候就需要考虑从每个数据点建立更多特征来预测。
在这个高维特征向量上训练的逻辑回归模型分类器将具有更复杂的决策边界,并且在我们的二维XY图中绘制时将呈现非线性,这就是逻辑回归中的线性不可分。
逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线性)映射,使得逻辑回归称为了一个优秀的分类算法。两者都属于广义线性模型,但它们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。在信贷风控业务中,一般求解的变量参数不能为负数,因为需要将逻辑回归模型预测的概率进行转换成评分卡模型的分数0-1000之间。其中要求属性点数为正、总分数为正、分数某个值代表特定的信用质量、分数差异代表统一的信用质量变化。
from sklearn.linear_model import LogisticRegression
Model = LogisticRegression()
Model.fit(X_train, y_train)
Model.score(X_train,y_train)
# Equation coefficient and Intercept
Print(‘Coefficient’,model.coef_)
Print(‘Intercept’,model.intercept_)
# Predict Output
Predicted = Model.predict(x_test)
参考文献:
[1] https://blog.csdn.net/weixin_60737527/article/details/124141293
[2] https://zhuanlan.zhihu.com/p/74874291
[3] https://cloud.tencent.com/developer/article/1412823
[4] https://zhuanlan.zhihu.com/p/352437358
[5] 逻辑回归算法之如何实现客户逾期还款业务