信用评分系统运行原理上篇(1)

简介: 信用评分系统运行原理上篇(1)

源码


https://gitee.com/pingfanrenbiji/Credit-Card-Score


在jupyter中打开该项目


image.png


导入代码库


# Numpy是以矩阵为基础的数学计算模块,纯数学
import numpy as np
# pandas是提供高性能易用数据类型和分析工具的第三方库
import pandas as pd
# 绘制图形
import matplotlib.pyplot as plt
# seaborn是基于matplotlib开发的可视化库,比matplotlib更加容易使用,而且图例的风格更加现代化
import seaborn as sns
# Matplotlib 是Python 的一个绘图库。 它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图,正弦曲线,甚至是三维图形
%matplotlib inline


读取数据字典


image.png


分别解释下每个变量代表什么含义


SeriousDlqin2yrs 好坏客户
RevolvingUtilizationOfUnsecuredLines 信用卡和个人信用额度的总余额,除了房地产和没有分期付款债务,如汽车贷款除以信用额度
age 出生年龄
NumberOfTime30-59DaysPastDueNotWorse 过去两年借款35-59天逾期但是不糟糕的次数
DebtRatio 每月债务支付、赡养费、生活费用除以毛利
MonthlyIncome 月收入
NumberOfOpenCreditLinesAndLoans 开放式贷款(分期付款汽车贷款或抵押贷款)和信用额度(信用卡)的次数
NumberOfTimes90DaysLate >= 90天逾期
NumberRealEstateLoansOrLines 抵押贷款和房地产贷款包括房屋净值信贷额度
NumberOfTime60-89DaysPastDueNotWorse 过去两年借款60-89天逾期但是不糟糕的次数
NumberOfDependents 家属数量不包括自己


REAL数据类型说明


REAL 数据类型保存单精度浮点数 
REAL 值需要 4 个存储字节
保存为 REAL 类型的值可精确到 7 个有效数字


读取训练数据


df = pd.read_csv("./GiveMeSomeCredit/cs-training.csv").drop("Unnamed: 0", axis=1)
drop是删除函数 axis=1表示列 删除 指定列名为 "Unnamed: 0" 的列


查看前5行数据


image.png


通过 info() 可以看出一共有150000条信息,MonthyIncome 和 NumberOfDependents 存在缺失的情况,MonthyIncome 缺失29731个数据,NumberOfDependents 缺失3924个数据。


数据集计算


df.describe().T.assign(missing_rate = df.apply(lambda x : (len(x)-x.count())/float(len(x))))


image.png


使用 describe() 来看数据集中的计数、均值、最大最小值、标准差和第一、二、三个四分位值,同时增加了缺失率的计算


缺失值处理:


1、由于 MonthyIncome 缺失较多,因此不适合直接进行删除,这边根据变量之间存在的关系来填补缺失值,并采用随机森林的方法;
    2、NumberOfDependents 的缺失较少,对于整体的样本影响有限,因此这边直接进行删除操作,后续也可以进行一些其他的填补操作。


随机森林函数


image.png


image.png


  • 参数解释:


random_state:随机种子
n_estimators:也就是最大的弱学习器的个数。 一般来说n_estimators太小,容易欠拟合,n_estimators太大,计算量会太大,并且n_estimators到一定的数量后,再增大n_estimators获得的模型提升会很小,所以一般选择一个适中的数值。 默认是100
max_depth:决策树最大深度
n_jobs:设定工作的core数量. 等于-1的时候,表示cpu里的所有core进行工作


删除缺失值、删除重复值


df.dropna()
df.drop_duplicates()


异常值处理


偏离大多数抽样数据的数值,通常指测定值中与平均值的偏差超过两倍标准差的测定值
通常采用离群值检测的方法对异常值进行检测


  • 画一个分箱图


df["RevolvingUtilizationOfUnsecuredLines"].plot(kind="box", grid=True)
grid=True:显示网格


image.png

相关文章
信用评分系统运行原理上篇(2)
信用评分系统运行原理上篇(2)
139 0
信用评分系统运行原理上篇(2)
信用评分系统运行原理上篇(3)
信用评分系统运行原理上篇(3)
182 0
信用评分系统运行原理上篇(3)
|
算法
信用评分系统运行原理下篇(1)
信用评分系统运行原理下篇(1)
190 0
信用评分系统运行原理下篇(1)
|
机器学习/深度学习 Python
信用评分系统运行原理下篇(3)
信用评分系统运行原理下篇(3)
128 0
信用评分系统运行原理下篇(3)
信用评分系统运行原理中篇-分箱逻辑(3)
信用评分系统运行原理中篇-分箱逻辑(3)
210 0
信用评分系统运行原理中篇-分箱逻辑(3)
|
算法 数据处理
信用评分系统运行原理中篇-分箱逻辑(2)
信用评分系统运行原理中篇-分箱逻辑(2)
154 0
信用评分系统运行原理中篇-分箱逻辑(2)
|
算法 编译器 Python
信用评分系统运行原理中篇-分箱逻辑(1)
信用评分系统运行原理中篇-分箱逻辑(1)
176 0
信用评分系统运行原理中篇-分箱逻辑(1)
信用评分系统运行原理中篇-分箱逻辑(4)
信用评分系统运行原理中篇-分箱逻辑(4)
129 0
信用评分系统运行原理中篇-分箱逻辑(4)
|
存储 XML JavaScript
日志原理与开发分析这篇完全指南就够了!适应各种规模!
日志原理与开发分析这篇完全指南就够了!适应各种规模!
931 0
日志原理与开发分析这篇完全指南就够了!适应各种规模!
|
算法
信用评分系统运行原理下篇(2)
信用评分系统运行原理下篇(2)
161 0
下一篇
无影云桌面