美文网首页
利用逻辑回归算法降低银行放贷风险

利用逻辑回归算法降低银行放贷风险

作者: 悟成 | 来源:发表于2017-07-01 22:14 被阅读0次

    1.定义问题:

    在银行业发展的上百年的历史中,它推动了整个经济社会的不断发展,无论是对于社会发展还是自身成长都取得了很大的成就。但是用户出现还贷违约的风险是银行运营中资金的最大风险。过去银行的贷款可以通过调查借贷人的明显资产总数,如房产、车、企业等,然后按比例折算给借贷人放款。如今借贷需求大量出现,银行如何降低借钱的风险。我们可以使用逻辑回归算法,从大量的历史个人数据,找出有那些关键特征数据可能影响用户违约。

    2.准备数据:

    我们得到的原始数据,可能是这样的。

    经过对原始数据进行分析,发现教育和地址都是中文数值,这样的数值不能适应逻辑,回归算法无法预测是否与教育和地址有关。我们需要对这两类数据进行特殊的编码,如:学历由低到高采用阿拉伯数值代替教育背景。地址可以由全国各个省市的人均可支配收入进行由高到低的排列。(这样的编码方式可能不是最优,但是在同一次分析中相同属性必须采用同一种编码规则。将文本数据规范化是预处理中最需要做的)

    预处理之后的数据如下:

    用于计算的数据全部为数值类型。这样的数据就可以套用逻辑回归算法,找出违约用户可能与那些属性紧密相关。

    3.分析方法:

    逻辑回归算法不同于线性回归算法,后者一般是找出两者数据可能存在的线性关系y=ax+b并且尽量精确a和b的值。逻辑回归算法数据不是线性相关的,我们可以使用事件发生的几率来表示事件发生与不发生的比值,假设发生的概率是p(取值在0~1范围),那么发生的几率是p/(1-p),取值0~正无穷大,几率越大,发生的可能性越大。将其设为数学模型就是logit函数:

    那么logit函数图如下:

    对于客户违约预测,通过过往历史数据,找出用户是否违约关系很紧密的属性。假设用户违约,同时他们的银行负载几率都是特别高,就可以发现用户是否会违约与银行负载几率关系紧密。

    代码如下:

    # coding=utf-8

    #逻辑回归,自动建模importpandasaspd

    #初始化参数filename ='data/bankloan.xls'

    data = pd.read_excel(filename)

    x = data.iloc[:,:8].as_matrix()#8个属性y = data.iloc[:,8].as_matrix()#第九列结果标签

    #导入逻辑回归模型fromsklearn.linear_modelimportLogisticRegressionasLR

    fromsklearn.linear_modelimportRandomizedLogisticRegressionasRLR

    #建立随机逻辑回归模型,筛选变量rlr = RLR()

    #训练模型rlr.fit(x,y)

    #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数rlr.get_support()

    print(u'通过随机逻辑回归模型筛选特征结束。')

    print(u'有效特征为:%s'%','.join(data.columns[rlr.get_support()]))

    #筛选好特征x =data[data.columns[rlr.get_support()]].as_matrix()

    #建立逻辑回归模型lr = LR()

    #用筛选后的特征数据来训练模型lr.fit(x,y)

    print(u'逻辑回归模型训练结束。')

    #给出模型的平均正确率,本例为81.4%print(u'模型的平均正确率为:%s'%

    lr.score(x,y))

    4.结论:

    该段代码输出:用户是否违约与工龄、地址、负债率、信用卡负债关联特别高。并且根据历史数据计算出关联性的可信度81.4%。

    通过这个模型的计算与分析,银行在对新借贷用户是否放款的问题上,可以对用户的工作工龄,用户居住地址,用户负载率和过往信用卡负债情况进行深入调查,然后决定放贷情况。

    相关文章

      网友评论

          本文标题:利用逻辑回归算法降低银行放贷风险

          本文链接:https://www.haomeiwen.com/subject/tfasattx.html