贷款利润最大化——利用随机森林和逻辑回归进行分类

1.数据读取

这里有一份贷款数据,包括与贷款相关信息,现有主要任务:对贷款人借贷状态(全额借贷、不予借贷)进行分类,从而实现贷款利润最大化。

import pandas as pd
loans_2007 = pd.read_csv('LoanStats3a.csv', skiprows=1)
half_count = len(loans_2007) / 2
#删除空值记录
loans_2007 = loans_2007.dropna(thresh=half_count, axis=1)
#舍弃无关字段
loans_2007 = loans_2007.drop(['desc', 'url'],axis=1)
#将清理的数据集存入新的csv文件中
loans_2007.to_csv('loans_2007.csv', index=False)
import pandas as pd
loans_2007 = pd.read_csv("loans_2007.csv")
print(loans_2007.iloc[0])
print(loans_2007.shape[1])

输出结果显示共有52个字段,其中部分字段为无关字段,应该舍弃。

2.数据清洗及分析

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])

删除无关字段后,剩余32个字段

#统计不同还款状态对应的样本数量——标签类分析
print(loans_2007['loan_status'].value_counts())

在这里插入图片描述
统计结果显示,共有9种借贷状态,其中我们仅分析"Fully Paid"(全额借款)和"Charged Off"(不借款)这两种状态。

#筛选出要分类的标签值,其中"Fully Paid"状态值为1,"Charged Off"状态值为0
loans_2007 = loans_2007[(loans_2007['loan_status'] == "Fully Paid") | (loans_2007['loan_status'] == "Charged Off")]

status_replace = {
   
    "loan_status" : {
   
        "Fully Paid": 1,
        "Charged Off": 0,
    }
}

loans_2007 = loans_2007.replace(status_replace)

在进行数据分析时,部分字段对应的值只有一个,应删除这些无关字段

orig_columns = loans_2007.columns
drop_columns = []
for col in orig_columns:
    col_series = loans_2007[col].dropna().unique()
    #如果字段值都一样,删除该字段
    if len
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值