您好, 访客   登录/注册

利用LogisticRegression建立贷款申请最大化利润模型

来源:用户上传      作者:

   摘要:随着金融证券化的发展,银行已由卖方市场转到了买方市场。因此,争夺实力雄厚、信用度高、还款能力强的客户是商业银行主要的竞争。文章综述了利用人工智能方法在贷款申请预测方面的研究。将利用Logistic Regression算法建立贷款申请最大化利润模型,同时利用机器学习的基本理论,证明本模型的泛化性良好。
   关键词:人工智能;Logistic Regression;贷款申请;机器学习
   一、前言
   银行贷款,指的是银行根据国家政策以一定的利率将资金贷放给资金需要者,并约定期限归还的一种经济行为。一般要求房屋抵押、提供担保、收入证明、个人征信良好才可申请。
   近年来,随着政策的进一步开放与人民消费理念的进步,我国商业银行个人消费贷款发展迅速,个人消费贷款占银行贷款总额的比重逐年增长,并逐步成为银行主要的业务和效益来源之一。随着金融证券化的发展,银行在贷款这项金融活动中也面临诸多的风险,如利润风险、流动性风险、信用风险等。因此,如何提高信贷资产的安全性,如何对申请贷款的用户进行正确的信用评估,严格避开不良借贷的风险,成为了一家银行能否平稳运行的重中之重。
   早在1998年5月,中国人民银行便参照国际惯例,结合我国国情,制定了《贷款分类指导原则》,要求商业银行依据借款人的实际还款能力进行贷款质量的五级分类,即按风险程度将贷款划分为五类:正常、关注、次级、可疑、损失,后三种为不良贷款。不良的贷款首先对银行来说是一种极大的利益损害,当银行的不良贷款过多的时候,就会极大的影响银行的经营运转。对社会而言,不良贷款也起到负面的影响,并形成一系列的不良反应。所以银行想要的便是借款人能够履行合同,能正常还本付息,及时偿还全款的正常贷款。
   随着互联网金融的发展,传统的分析方法和手段已经不能满足金融贷款公司越来越高的成本利润分析要求,大数据技术的出现,满足了金融贷款公司的动态,灵活,实时的分析需求。经研究,影响个人贷款还款的主要因素有:借款人信用状况,借款人就业情况与从业时间,借款人的收入来源与消费倾向,借款人的年龄,学历,婚姻家庭状况等。本文将综合上述因素进行分析,利用传统机器学习,构建贷款模型,尽量降低银行的贷款风险。研究意义有以下方面:从理论上讨论了利用Logistic Regression建立贷款申请最大化利润模型的可行性,并运用机器学习的理论证明其合理性;运用现有少量数据集对所建立的模型进行验证;为银行今后制作相关的网络系统提供制作算法,制作理念和制作核心。
   二、探究基于传统机器学习的贷款模型
   (一)机器学习
   1. 简介
   机器学习是人工智能的核心,是利用人工智能解决现实问题的理论基础。机器学习能够以数据为学习对象,从数据中挖掘数据内在的信息从而不断迭代训练,总结出仅靠人类无法发现的潜在规律和问题,机器学习的运用也在生活中变得越来越广泛,例如在数据挖掘、计算机视觉、自然语言处理、语音识别等都有相应的推广。
   2. 监督学习与无监督学习
   机器学习中被最广泛采纳的两大机器学习方法是监督学习和无监督学习。大约70%的机器学习是监督学习,无监督学习大概占10%~20%,有时也会使用1半监督学习和强化学习。本文将使用的决策树,SVM算法以及Logistic Regression就属于监督学习算法。
   监督学习就像已经知道所需输出的输入,运用已知的数据信息训练算法。首先学习算法会获得对应所求输出的数据标签,算法会将实际输出与所求输出进行对比练习,找到错误。然后对现有模型进行修改,通过分类、回归、梯度下降等方法,最终使算法可以通过新的数据来预测可能的结果。例如,本文就是为了预测什么样的贷款交易是有风险的。
   无监督学习,与监督学习恰恰相反,使用无历史标签的相反数据。系统不会被告知正确的输出,算法必须自己探索所求输出。无监督学习对事务性数据的处理效果很好。例如,它可以识别有一些具有相同属性的贷款客户群体,或者它可以找到主要属性将客户群体彼此区分开。
   (二)建立贷款模型
   前文已经简述了机器学习的相关内容,我们知道机器学习是能够基于数据建模学习的一种方法,对大数据条件下的问题可以通过机器学习算法模型挖掘数据中大量的潜在价值和信息,从而指导人类分析和解决问题。我们回到本文的贷款申请最大化利润问题,我们需要評判的是用户是否具备还款的能力,从而决定是否给出该用户的借贷资格,这是个很典型的分类问题,希望通过用户的个人信息,建立模型给出一个评估结果(同意贷款或不同意贷款)。尝试通过算法模型分析出一名用户具备还款能力的可能性,以此辅助我们在业务上进行决策。分类问题是机器学习中的基本问题,诸如决策树,SVM,逻辑回归等基础模型都得到了广泛的应用,基于逻辑回归在二分类问题上的通用性,我们决定以Logistic Regression来建立模型。
   1. 逻辑回归
   首先,线性回归是一种因变量与自变量成线性关系的回归分析。在线性回归中,可以利用线性预测函数通过已知数据来进行建模并大致预测模型参数。
   线性回归作为一种广义的线性回归分析模型。它的模型形式为:
   z=w1*x1+w2*x2+…wn*xn+b(1)
   其中w和b是待求参数,逻辑回归通过函数L将wx+b对应一个隐状态p:
   p=L(wx+b) (2)
   然后根据p 与1-p的大小决定因变量的值。逻辑回归的因变量一般是二分类的,其容易解释被人们所常用,但也可以是多分类的。
   逻辑回归的实质是将正样本概率除以负样本概率再取其对数。这一简单的变换将概率变成了比值,一方面改变了取值区间的矛盾,另一方面,经过长时间的大量实践总结发现,它还常常是因变量和自变量之间呈线性关系。所以,逻辑回归从根本上解决了因变量可能不连续的问题。在生活中,许多现实问题也与它的模型相吻合,就例如一件事情是否发生跟其他数值型自变量的关系。    线性回归的输出z,即样本特征与参数的线性组合,逻辑回归通过激活函数Sigmoid函数将原始的连续值输出z映射在了区间[0,1]的概率分布上,从而将模型输出转变为我们希望得到的类别概率形式描述目标问题。之所以叫Sigmoid,是因为函数的图像很想一个字母S,其特性:函数的取值在0~1之间,且在0.5处为中心对称,并且越靠近x=0的取值斜率越大。
   Sigmoid的公式形式:
   f(z)=1/1+e-z(3)
   Sigmoid函数可以将任意的数据输入都映射到了[0,1]区间。这样我们可以顺利地将线性回归得到的预测值映射到Sigmoid函数中,完成由值到概率的转化,得到我们想要的客户是否符合结果的概率。
   2. 损失函数
   损失函数是为了评估模型拟合的好坏,通常用损失函数来度量模型的拟合程度。而损失函数的最小化,意味着拟合程度最好,对应的模型参数即为最优参数。逻辑回归的损失函数为对数损失函数,因为数据集中有很多数据,要求将这些数据相乘,又因为概率p总是在(0,1)之间的,所以如果利用对数函数变换将连乘变为连加,那么就不会超出计算精度。
   在损失函数中,当y为1,即样本为正样本,那么我们希望将其预测为正样本的概率p越大越好,则logp越大越好。反之,当y为0时,那么我们希望将其预测为负样本的概率越大越好,即log(1-p)越大越好。
   3. 梯度下降法
   为了得到最小化的损失函数和最优的模型参数值,可以通过梯度下降法来一步步的迭代求解。
   首先,梯度下降,是采用一步步逼近目标函数的最小值的方法。但因为损失函数不一定是凸函数,这种方式有可能会求得局部的最优解,而不是整个函数全局的最优解。所以还需要对选择方式,学习率和批处理数量进行研究。
   学习率也就是每一步的步长,可以尽量从小开始,如果还是达不到最优就在减小,但也不能太小徒增计算量,增加计算时间。
   梯度下降法也大致分为三类,分别是批量梯度下降法,随机梯度下降法及小批量梯度下降法。第一种每次迭代都考虑全部样本,太费时间;第二种迭代速度快,但不一定每次都朝着收敛的方向;最后一种每次选择一小部分样本,既实用又方便。所以我们的处理方式将选择小批量梯度下降法。
   以上已经简述了本次构建贷款最大化模型的相关制作算法与核心知识。接下来,将开始着手介绍模型的实现。
   三、数据集来源
   本论文实验数据来自P2P平台lending club在2007~2011年贷款申请人的各项评估指标,我们基于此数据集,结合机器学习算法建立贷款申请模型。
   原始数据集包括40000个样本,每个样本包含52个特征。本文首先基于对信贷行业的理解,对特征维度进行初步筛选。
   原始数据集中主要特征为贷款金额,贷款期限,利率,工作年限这类整型或浮点型数据,以及“贷款意图”,“贷款公司头衔”,“贷款人有无房产”,“是否成功借贷”这类字符型数据。
   四、实验过程
   (一)数据预处理
   数据的预处理和特征选择是机器学习解决问题过程中的重要环节,也被定义为特征工程。特征工程就是把原始数据转化为需要的数据,也即能够被机器学习模型接受并有效训练的数据,多数时候我们往往会把大量的精力投入在构建模型和调节参数之中,却忽略了特征工程的重要性。
   首先针对数据集的特征进行初步的探索性分析,主要了解各数据特征在贷款业务中的逻辑及含义。基于这些业务知识和特征与结果的相关性进行粗略的筛选,清理掉与贷款业务相关性不是很大的部分特征。本数据集中如公司名称,申请人ID,以及一些编码如url等特征显然与业务相关性不大,对这些特征进行清理。
   数据集中选择是否成功借贷作为我们数据集的标签,表示最终同意贷款或不同意贷款。用Python第三方提供的常用机器学习库sklearn进行模型的建立,由于sklearn中各学习模型只能接受数值类型的数据,因此像标签特征这样的离散型数据,将“是”和“否”做映射处理,将其转化为数值类型数据0和1。
   若数据的某一列特征取值为唯一值,显然这样的特征对我们的模型训练是没有意义的,在数据的处理过程中我们也进行删除处理。针对数据中某一特征缺失值较少,选择删除这少量样本,而如果某列特征缺失值过多,认为该特征失去训练价值,将该列删除。
   (二)实验结论
   本文采用数据集中的“是否同意借贷”为标签,是典型的二分类问题,而逻辑回归作为机器学习中二分类问题的经典算法,将其作为首选模型进行建模。使用Python实现逻辑回归算法模型,调用sklearn库完成具体的模型实现及训练。初始学习率设置为0.01,其他参数采用默认值,并采用10折交叉验证。
   需要注意到的是,对模型的评判标准,应当根据贷款行业的实际业务场景,以实现利润最大化为目标进行模型评判,因此对模型要求高的准确率的同时,还应当要求尽量降低错误率,在本论文场景中,一次成功的借贷带来的利润为该用户偿还的贷款利率,而亏损来自于我们错误地完成了一次无法收回贷款的借贷交易,而这样的亏损相比于一位用户的利率来说是要高出很多的。因此对负样本(不同意借贷)的关注不可被忽视。
   模型最终预测的结果中,正确率于错误率都达到了99%,通过对原始数据的观察发现数据中正负样本为6:1,造成了模型对正样本的偏重,采用调整正负样本权重的方式进行改善,重新训练之后的结果为正确率73%,错误率47%。
   实验最后同时对比了其他几种传统机器学习算法,SVM的正确率为68%,错误率为52%,而决策树的正确率为66%,错误率为49%。
   从业务角度上,本文最终根据模型预测的结果进行综合衡量,权衡准确率和召回率等多项指标,以得到利润最大化。
   五、结论与展望
   本文基于机器学习算法建模,以经典二分类模型逻辑回归为核心算法在实际场景中建立贷款申请最大化利润模型,并且在数据集上表现良好,对最大化银行利润起到了不错的参考和指导作用。本文的模型仍存在一些提升空间,基于实验数据集较小,尚未进行大规模数据进行训练测试,未来可以在调节参数,尝试更换一些集成算法上做出优化,本文对正负样本不均衡问题采用的是调整正负样本權重方式,是基于数据样本较小的情况下做出的考虑,最好的办法依然还是尽量获取到更多的数据,从而使模型得到更强的泛化能力。
   参考文献:
   [1]潘晓文,赵永清.商业银行计提贷款损失准备进行利润平滑的研究[J].现代金融,2015(12).
   [2]曲冠知.大数据下的金融贷款公司成本利润分析[J].科技经济导刊,2018(19).
   (作者单位:西安高新一中国际部)
转载注明来源:https://www.xzbu.com/2/view-15135977.htm