从样本集到WOE、IV值的变迁

827 阅读2分钟

从样本集到WOE、IV值的变迁

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

样本集

  • 在建模任务开始之前首先需要有训练数据,也就是样本集。在对样本集的所有特征数据进行整理和预处理后,就可以对每一个特征的各个取值计算WOE。

WOE(Weight of Evidence)证据权重

  • WOE是对原始特征的一种编码形式,要对一个变量进行WOE编码,需要首先把这个变量进行分组处理(也叫离散化、分箱),如果是离散变量可以直接进行编码。
  • 对每个分组或取值,响应比例(二分类取值为1的正样本比例)越大,WOE值越大;当前分组WOE的正负,由当前分组响应和未响应的比例,与样本整体响应和未响应的比例的大小关系决定,当前分组的比例小于样本整体比例时,WOE为负,当前分组的比例大于整体比例时,WOE为正,当前分组的比例和整体比例相等时,WOE为0。
  • 计算公式:
    • Yesi{Yes_i}表示分组中的响应用户
    • Yestotal{Yes_{total}} 表示总响应用户
    • Noi{No_i} 表示分组中的未响应用户
    • NototalNo_{total} 表示总未响应用户
  • WOEi=ln(Yesi/YestotalNoi/Nototal)WOE_i = ln(\frac{Yes_i/Yes_{total}}{No_i/No_{total}})

IV值(Information Value)信息值

  • IV值主要用来对原始特征进行编码和预测能力评估。特征变量IV值的大小即表示该变量预测能力的强弱。IV 值的取值范围是[0,正无穷)[0, 正无穷),如果当前分组中只包含响应客户或者未响应客户时,IV = 正无穷。
  • 计算公式:
    • Yesi{Yes_i}表示分组中的响应用户
    • Yestotal{Yes_{total}} 表示总响应用户
    • Noi{No_i} 表示分组中的未响应用户
    • NototalNo_{total} 表示总未响应用户
  • IVi=(Yesi/YestotalNoi/N0total)ln(Yesi/YestotalNoi/Nototal)IV_i = ({Yes_i/Yes_{total}}-{No_i/N0_{total}})*ln(\frac{Yes_i/Yes_{total}}{No_i/No_{total}})
  • IV=sum(IVi)IV = sum(IV_i)

应用要点

  1. IV值并不是越大越好。IV过大,很可能是分箱不当所引起的,这个时候需要对数据进行重新分箱操作。
  2. 如果按照原始的公式进行计算,分箱操作时,某个组的数据不能为0,否则做除法运算时会触发异常。
  3. 实际项目操作过程中,一般选择0.2作为阈值。如果某个特征的IV值小于0.2,说明区分度不太够,该特征不予采用。