前言:
风险控制是挖掘中最为常见的应用,属于监督学习的“分类器”使用案例。我们通过以往历史数据判断用户违约的概率。本文使用了Logistic Regression 方法完成案例。
首先是基于个人借贷的场景,确定“违约”的定义: 根据新的Basel II Capital Accord(巴塞尔二资本协议),一般逾期90天算作违约。
风控模型开发流程
· 数据抽取
· 数据探索
· 建模数据准备
· 变量选择
· 模型开发与验证
· 模型部署
· 模型监督
import pandasas pd#pandas包
import numpy as np#numpy包
import matplotlib.pyplot as plt#画图包
import seaborn as sb#画图包
from sklearn.linear_model import LogisticRegression#随机森林包
from sklearn.cross_validation import KFold,cross_val_score#交叉验证包
from sklearn.metrics import confusion_matrix,recall_score,classification_report#混淆矩阵包
from sklearn.preprocessing import StandardScaler数据标准化处理
1.数据准备
数据来自Kaggle,cs-training.csv是有15万条的样本数据,违约(1):不违约(0)=0.06:0.94),字段解释如下。
SeriousDlqin2yrs:超过90天或更糟的逾期拖欠
RevolvingUtilization Of UnsecuredLines:无担保放款的循环利用:除了不动产和像车 贷那样除以信用额度总和的无分期付款债务的信用卡和个人信用额度总额
Age:借款人年龄
NumberOfTime30-59DaysPastDueNotWorse:30-59天逾期次数
DebtRatio:负债比例
MonthlyIncome:月收入
Number Of OpenCreditLinesAndLoans:贷款数量
NumberOfTimes90DaysLate:90天逾期次数:借款者有90天或更高逾期的次数
NumberReal Estate Loans Or Lines:不动产贷款或额度数量:抵押贷款和不动产放款包 括房屋净值信贷额度
Number Of Time 60-89Days PastDue Not Worse:0-89天逾期次数
NumberOfDependents:不包括本人在内的家属数量
2.数据处理
2.1缺失值分析处理
traindata=pd.read_csv("C:/Users/Administrator/Desktop/CreditCard/CreditCard/cs_training.csv")#导入数据
traindata.drop_duplicates()#丢弃重复列
import missingno as msno#可视化分析缺失值包
sb.set(font_scale=2.0)
msno.matrix(traindata.sample(500),figsize=(16,7))