网贷
一些网络贷款平台面向在校大学生开展的贷款业务。据调查,校园消费贷款平台的风控措施差别较大,个别平台存在学生身份被冒用的风险。此外,部分为学生提供现金借款的平台难以控制借款流向,可能导致缺乏自制力的学生过度消费。
网贷的危害
一、网贷具有高利贷性质;
二、会滋生借款学生的恶习,难以自拔;
三、若不能及时归还贷款放贷人会采用各种手段讨债;
四、有不法分子利用“高利贷”进行其他犯罪。
通过一个贷款风险评估的案例,用最通俗的语言向你介绍机器学习的基础招式,一步步帮助你用Python完成自己的第一个机器学习项目。试过之后你会发现,机器学习真的不难。
起因
文件内容是这个样子的:
主管说这是公司宝贵的数据资产。
大概意思:
最后一列,记录了这笔贷款是否按期收回。
用决策树来表达这种规律
决策数
做决策的时候,你需要从最上面的节点出发。
第一种情况:
你估算了一下自己的阅读速度、耐心和认知负荷能力,觉得这个任务属于不可能完成,于是开始默默地收拾东西,打算找主管道个别,辞职不干了。
且慢,你不必如此沮丧。因为科技的发展,已经把一项黑魔法放在了你的手边,随时供你取用。它的名字,叫做机器学习。
机器学习
前些日子的新闻里,你知道Alpha Go和柯洁下围棋。柯洁不仅输了棋,还哭了。
可是制造Alpha Go的那帮人,当真知道怎样下棋,才能赢过柯洁吗?你就是让他们放弃体育家精神,攒鸡毛凑掸子一起上,跟柯洁下棋……你估计哭的是谁?
机器学习的关键,不在于人类的经验和智慧,而在于数据。
本文我们接触到的,是最为基础的监督式学习(supervised learning)。监督式学习利用的数据,是机器最喜欢的。这些数据的特点,是都被打了标记。
准备
使用Python和相关软件包,你需要先安装Anaconda套装。
Excel打开一份贷款数据文件
到你的系统“终端”(macOS, Linux)或者“命令提示符”(Windows)下,进入我们的工作目录demo,执行以下命令。
pip install -U PIL
运行环境配置完毕。
在终端或者命令提示符下键入:
jupyter notebook
Jupyter Notebook已经正确运行。可以正式编写Python代码了。
代码
新建一个Python 2笔记本
为了让Python能够高效率处理表格数据,我们使用一个非常优秀的数据处理框架Pandas。
import pandas as pd
df = pd.read_csv('loans.csv')
df.head()
表格列数较多,屏幕上显示不完整,我们向右拖动表格,看表格最右边几列是否也正确读取。
经验证,数据所有列都已读入。
下面我们就分别把特征和目标提取出来。依照机器学习领域的习惯,我们把特征叫做X,目标叫做y。
除了最后一列,其他行列都在。符合我们的预期。我们再看看“目标”列。
运行结果为:
Python下做决策树的时候,每一个特征都应该是整型或者实数类型的。
那我们就开始映射吧:
运行结果:
这里,我们使用了LabelEncoder函数,成功地把类别变成了数值。小测验:在grade列下面,B被映射成了什么数字?
把数据随机拆分成训练集和测试集,在Python里只需要2条语句就够了。
我们看看训练数据集的形状:
至此,一切数据准备工作都已就绪。我们开始呼唤Python中的scikit-learn软件包。决策树的模型,已经集成在内。只需要3条语句,直接调用就可以,非常方便。
决策树已经生成完了。
结果:
你是不是跟我第一次看到决策树的可视化结果一样,惊诧了?
我们其实只让Python生成了一棵简单的决策树(深度仅3层),但是Python已经尽职尽责地帮我们考虑到了各种变量对最终决策结果的影响。
测试
欣喜若狂的你,在悄悄背诵什么?你说想把这棵决策树的判断条件背下来,然后去做贷款风险判断?
省省吧。都什么时代了,还这么喜欢背诵?
以后的决策,电脑可以自动化帮你完成了。
你不信?
我们随便从测试集里面找一条数据出来。让电脑用决策树帮我们判断一下看看。
之前提到过,1代表这笔贷款是安全的。实际情况如何呢?我们来验证一下。从测试集目标里面取出对应的标记:
但是我们不能用孤证来说明问题。下面我们验证一下,根据训练得来的决策树模型,贷款风险类别判断准确率究竟有多高。
在机器学习过程中,优化尤其重要。
领取专属 10元无门槛券
私享最新 技术干货