逻辑回归算法之如何实现客户预期还款业务

1.数据清洗

2.缺失值分析

3.数据格式转换

4.特种工程

5.模型训练

6.建立混淆矩阵

1.数据清洗

数据源:数据集是Lending Club平台发生借贷的业务数据,共有52个变量,39522条数据

输出数据标签,初判断无用特征

很明显从常识来看"id"和"member_id"与银行是否对他进行放贷没有任何关系,"funded_amnt"(期望贷款的值)和"funded_amnt_inv" (实际发放的值)为预测后银行对该人贷款的金额,很明显与模型预测没有关系。

对于目标变量Loan_status有四个分类,后两者是指不符合信用政策的坏账或者完全支付的状态,我们认为是特殊情况的信贷,因此不予考虑,当缺失值处理,同时用0代表chaeged off(没有偿还能力/违约),1代表fully paid(有偿还能力/完全支付)

在原始数据中的特征值里都是一样的,对于分类模型的预测是没有用的,过滤掉该特征

还剩下24列候选特征

2.缺失值分析

从统计结果中可以看出"title"和"revol_util"缺失值相对于数据总量来说较少,可以直接去掉缺失值所在的行,而"pub_rec_bankruptcies"中的缺失值较多,说明该数据统计的情况较差,在本文中直接将此特征删除即可

数据类型的转换:由于sklearn库不接受字符型的数据,所以还需要将上面特征中12个字符型的数据进行处理

3.数据格式转换

 "purpose"和"title"表达的意思相近,且从输出结果可以看出"title"所含的属性较多,可以将其删掉

剩余的其他字符型特征,此处选择使用pandas的get_dummies()函数,直接映射为数值型

4.特征工程

什么时候用OneHotEncoder独热编码和LabelEncoder标签编码?

无序特征,就用OneHotEncoder,比如:天气,性别

有序特征,就用LabelEncoder,比如:职位,成立时间

5.模型训练

对于二分类问题,一般情况下,首选逻辑回归

6.建立混淆矩阵

计算fp/tp/fn/tn 4个指标

本质上期望TPR越高越好,FPR越低越好

tpr:比较高,能够还钱的人给他贷款

fpr:比较高,不能还钱的还是给他贷款

样本不均衡导致

对上述模型的预测结果进行简单的分析,发现tpr和fpr都达到了99.9%,模型几乎将所有的样本都判断为正例,通过对原始数据的了解,分析造成该现象的原因是由于正例样本数量太大,即样本不均衡造成模型对正例样本有所遍重,这里采用对样本添加权重值的方式进行调整

猜你喜欢

转载自www.cnblogs.com/daisyxxx/p/12908481.html