算法进阶day2--特征选择
任务
分别用IV值和随机森林进行特征选择。然后分别构建模型(逻辑回归、SVM、决策树、随机森林、GBDT、XGBoost和LightGBM),进行模型评估。
IV值
1、 IV值:IV值(Information Value),即信息价值指标,是评分卡模型中的一个常见指标,在金融风控领域得到了广泛的应用,尤其是在特征选择的场景下,会经常提及这个概念。
2、当IV值取到多大时,我们才选择这个特征。这里给出一个经验参考表:
IV值 | 预测能力 |
---|---|
< 0.02 | 无预测能力 |
0.02 ~ 0.1 | 较弱的预测能力 |
0.1 ~ 0.3 | 预测能力一般 |
0.3 ~0.5 | 较强的预测能力 |
> 0.5 | 可疑 |
IV值的计算
(1)、WOE
WOE是计算IV值的基础
WOE的计算公式:
p y i p_{y_i} pyi:表示第i属性违约样本占所有违约样本的比例
p x i p_{x_{i}} pxi:表示第i属性未违约样本占所有未违约样本的比例
y i y_{i} yi:表示第i属性违约样本总数
y y y: 表示总违约样本数
x i x_{i} xi:表示第i属性未违约样本总数
x x x:表示总未违约样本数
(2)、
IV值的计算式
代码实现
IV值的计算
# IV值的计算
def calcWOE(dataset, col, target):
# 对特征进行统计分组
subdata = df(dataset.groupby(col)[col].count())
# 每个分组中响应客户的数量
suby = df(dataset.groupby(col)[target].sum())
# subdata 与 suby 的拼接
data =