ML - 贷款用户逾期情况分析1 - Baseline

任务

给定金融数据,预测贷款用户是否会逾期。(status是标签:0表示未逾期,1表示逾期。)

Task1 - 构建逻辑回归模型进行预测(在构建部分数据需要进行缺失值处理和数据类型转换,如果不能处理,可以直接暴力删除)
Task2 - 构建SVM和决策树模型进行预测
Task3 - 构建xgboost和lightgbm模型进行预测
Task4 - 模型评估:记录五个模型关于accuracy、precision,recall和f1-score、auc、roc的评分表格,画出auc和roc曲线图

总述

基本思路

主要分为以下几个步骤:
1)数据集预览
2)数据预处理:删除无用特征、字符型特征编码和缺失值填充。
3)特征工程:略
4)模型选择:LR、SVM(线性、多项式、高斯、sigmoid)、决策树、XGB和lightGBM。
5)模型调参:略
6)模型评估:准确率、精准率和召回率、F1-score、AUC和ROC曲线。
7)最终结果

代码部分

1. 数据集预览

import pandas as pd
data = pd.read_csv('data.csv')
print(data.shape)
data.head()

观察输出可知,数据集尺寸是(4754, 90)。
下面观察一下各列的属性名称:

data.columns

输出:‘low_volume_percent’,‘middle_volume_percent’,‘take_amount_in_later_12_month_highest’ …

2. 数据预处理

2.1 删除无用特征
# 'bank_card_no','source'的取值无区分度
# 'Unnamed: 0', 'custid', 'trade_no'和id_name'与预测无关
data.drop(['Unnamed: 0', 'custid', 'trade_no', 'bank_card_no', 'source', 'id_name'], 
          axis=1, inplace=True)

日期特征(暂时删除, 以后再处理)

data.drop(['first_transaction_time', 'latest_query_time', 'loans_latest_time'], 
          axis=1, inplace=True)
2.2 字符型特征-编码
data['reg_preference_for_trad'].value_counts()

输出
一线城市 3403
三线城市 1064
境外 150
二线城市 131
其他城市 4

对该特征编码如下:

dic = {
   }
for i, val in enumerate(list(data['reg_preference_for_trad'].unique())):
    dic[val] = i
data['reg_preference_for_trad'] = data['reg_preference_for_trad'].map(dic)
2.3 缺失特征处理

观察各列缺失值所占比例,从输出可以看出特征student_feature 缺失值占比超过一半,其余特征缺失值占比较低。

for feature in data.columns:
    summ = data[feature].isnull().sum()
    if summ:
        print('%.4f'%(summ*100/4754), '%',  '--', feature)

1)student_feature 缺失占比多, 需要用众数填充;

data['student_feature'
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值