信用卡评分模型分析-‘好/坏’客户的概率
本文主要是通过选取信用卡客户的历史数据信息特征之间的关联,建立可以评价客户‘好/坏’的概率模型,进而对新增客户的‘品质‘’有个综合评估,最终给一个概率值,概率值越大代表违约风险越高。
本文结构分为以下几块内容:数据准备及数据预处理、变量选择、模型构建、模型验证、模型评估。
1.数据准备及数据预处理。
本文数据来源kaggle竞赛Give Me Some Credit。其中训练数据共计15万条。
字段名和其含义称分别是:
1.1空值处理
通过pandas.describe()对原数据有个大致了解后发现,MonthlyIncome(月收入)及NumberOfDependents(家属数量)两个变量出现了缺失值。
由于MonthlyIncome缺失值达到29731条数据,占比较大,因此不能直接将缺失值删除,选择随机森林法填充。
NumberOfDependents的缺失较少,对数据影响不大,因此直接删除。
随机森林法填充:
使用dropna()函数删除空值,使用drop_duplicates()删除重复值,保留第一个。
1.2异常值删除
在本文中,采用各个单变量离群值检测来判断异常值,采用箱线图。
比如年龄超过100岁以及小于0岁的直接删除;可用额度比值和负债比率大于1的直接删除;所有逾期日期段的次数大于10的直接删除,箱线图上显示有98次和97次两个。
2.变量分析。
2.1 单独分析‘好/坏’客户占比分布,发现坏客户占比7.1%。
2.2分析月收入和违约客户数量之间的关系。
2.3家庭数量和违约客户数量之间的关系。
2.4年龄和违约客户数量之间的关系。
2.5多变量分析。使用corr()函数分析多个变量之间的关系。
3.0主特征筛选和构建模型。
3.1本文采用IV值大小来筛选模型变量。
我们定义IV值低于0.2的特征为预测能力较弱或无关特征,因此将DebtRatio等五个变量删除。
3.2特征分箱。根据IV值计算得出,五个特征变量。
3.3将筛选后的特征变量进行WOE转换,目的是减少逻辑回归的自变量处理量。
3.4逻辑回归预测客户好坏的概率值。
3.4模型检验。
测试成绩0.933。