了解数据,为后续特征工程做准备。
目的:
- 1.EDA价值主要在于熟悉了解整个数据集的基本情况(缺失值,异常值),变量分布,变量集中度。
- 2.了解变量间的相互关系、变量与预测值之间的关联关系(可以分析WOE、IV值)。
- 3.结合业务、结合变量分布,为特征工程做准备。
比赛数据都是给定train和test,后续还可能有test_B,有些场景中train和test之间可能存在差异,因而需要对train和test的数据同时分析,变量的一致性才能保证后续预测的一致性。
通过简单分析,有以下结论:
1、变量缺失度和饱和度
变量相对饱满,缺失度不高(比赛数据应该都比较不错吧),policyCode这一列是只有1个值,后续也可以直接剔除。
train和test上变量的缺失情况一致。且从后续变量分布来看,train和test分布几乎没有差异(上面是train,下面是test)。
image.png
image.png
有一个地方有点不理解,test多了两列数据n2.2,n2.3,好像和n2.1数值是一样的,之后可以详细看下。
2、变量类型
1、数值型变量
-
连续型变量:大部分都是连续型变量,可以直接入模。后续按照加减乘除方式衍生一些变量。
-
离散型(分类、等级)变量:例如贷款期数、房屋所有权状况等,都是穷举值,根据其含义后续也可以直接入模。同时在train和test上,变量的分布也是一致的。
2、非数值型变量
-
字符型变量:grade、subGrade、employmentLength ,这种带有顺序含义的字符型,可以直接映射到数值型(从每组变量的逾期率,从A到G逾期率逐渐升高,从A1到A5,B1到B5……,单调性非常明显)。
image.png
image.png -
时间类型变量:issueDate、issueDateDT。这两个都是时间变量,好像含义是一样的。。一般时间类型的可以做时间差(当前时间 - 申请时间)。从变量分布来看,train和test有一定差异,因此对时间变量的处理还需要谨慎一些。
image.png
按照是否违约看特征分布
如果把未违约人群和违约人群分开来看,grade的分布有差异,但是employmentLength就几乎没差异
image.png
从每个等级的违约率也可以看出来,不同工作年限之间的违约率差距并不是很明显,也没有明显的单调关系。
image.png
网友评论