参考地址:


https://www.toutiao.com/a6644771438534328836/


当数据集的特征过多时,容易产生过拟合,可以用随机森林来在训练之后可以产生一个各个特征重要性的数据集,利用这个数据集,确定一个阈值,选出来对模型训练帮助最大的一些特征,筛选出重要变量后可以再训练模型;

本文所用数据集是从kaggle网站上下载的lend club数据,通过随机森林筛选出对预测是否逾期的重要性变量:

 

 

 

 

 

 

接下来处理特征变量,先剔除一些对预测无关的贷后和贷中变量:

 

再删除缺失值大于90%的变量:

df.dropna(thresh = len(df) * 0.1 , axis=1,inplace=True)

接下来补全缺失值,对缺失值较多变量,将缺失值作为一种状态,对缺失值较少的变量,数值型用平均值补全,类别型用众数补全:

 

另外再构造一个衍生变量,算申请时间issue_d和第一次借贷时间earliest_cr_line之间的月份差值

 

因为决策树只能处理数值型和标称型变量,所以转换一下类别变量

 

训练模型

 

 

 

筛选变量:

 

 

 

现在各变量对是否逾期的重要性就计算出来了,如果接下来运用这些变量预测是否逾期的模型是树模型或者朴素贝叶斯模型,就可以直接通过重要性大于某个阈值或者重要性排名大于某个某个阈值来筛选出变量训练模型了,如果是接下来用回归模型或者线性模型,还需要考虑各个变量之间的共线性;