贷款申请利润最大化--数据清洗、逻辑回归

本文介绍了一个互联网贷款网站的预测模型构建过程,通过对大量冗余数据进行清洗,将贷款问题转化为二分类问题,并运用逻辑回归。当逻辑回归效果不佳时,尝试了集成森林模型,但效果与逻辑回归相当。文章讨论了模型评估的TPR和FPR指标,以及如何调整样本权重和探索不同模型来优化预测利润。
摘要由CSDN通过智能技术生成

任务要求:

本项目的背景为某互联网贷款网站提供的贷款人的个人信息,通过建立模型来预测新来了一个人银行是否对他进行放贷并评估模型的效果。

大致思路:

本项目的数据量很大且非常冗余,因此先进行数据预处理,对数据进行清洗,然后采用逻辑回归模型预测是否要对某人房贷,模型的建立比较简单,关键是在评估模型效果的时候发现效果很一般,通过数据增强效果也没有好太多,于是换成集成森林模型来评估,发现集成森林和逻辑回归模型的效果差不多。

代码详解:

1.数据预处理

1.1删除无用的列

通过观察数据,发现数据量是非常庞大的,特征列数量的庞大,导致我们不可能将所有特征都作为模型的划分依据,必然有一些特征是不重要的,对模型结果影响较小的,我们可以去掉这些特征,减少模型计算量。

import pandas as pd
loans_2007=pd.read_csv('C:\Anaconda\machine-leaning-data\loan-maxx\loans_2007.csv') #读取数据,由于第一行是列名,所以跳过
loans_2007.drop_duplicates()
print(loans_2007.iloc[0])#看一下第一行内容
print(loans_2007.shape[1])#看一下列数

#将没用的列给删掉
loans_2007 = loans_2007.drop(["id", "member_id", "funded_amnt", "funded_amnt_inv", "grade", "sub_grade", "emp_title", "issue_d"], axis=1)
loans_2007 = loans_2007.drop(["zip_code", "out_prncp", "out_prncp_inv", "total_pymnt", "total_pymnt_inv", "total_rec_prncp"], axis=1)
loans_2007 = loans_2007.drop(["total_rec_int", "total_rec_late_fee", "recoveries", "collection_recovery_fee", "last_pymnt_d", "last_pymnt_amnt"], axis=1)
print(loans_2007.iloc[0])
print(loans_2007.shape[1])

 1.2将贷款状态变为01二分类

print(loans_2007['loan_status'].value_counts())

由输出就可以看到,贷款状态只有Fully Paid,Charged Off是明确的,其余参数不明确,也不知道银行到底贷没贷款,所以这个结果就可以变为一个二分类问题,Fully Paid代表已放款为1,Charged Off代表拒贷为0。所以用字典将这两种状态给替换成0/1,代码如下:

#取出拥有这两个属性的行
loans_2007
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值