机器学习D10——WOE和IV编码

概述

  • WOE和IV通常是用在模型特征筛选的。IV和WOE能够帮助我们衡量什么变量应该进入模型,什么变量应该舍弃。用IV和WOE的值来进行判断,值越大就表示该特征的预测能力越强,则该特征应该加入到模型的训练中。

应用

  • 1、变量筛选。我们需要选择重要的变量加入模型,预测强度就可以作为我们判断变量是否重要的一个依据。
  • 2、指导变量离散化。在建模过程中,时常需要对连续变量进行离散化处理,如年龄分段。但变量的不同离散化结果(如:年龄分为[0-20]还是[0-15])会对模型产生不同的影响。因此,可以根据指标反应的预测强度,调整变量离散化结果。

WOE

  • WOE(Weight Of Evidence)用来衡量特征的预测强度,要使用WOE的话,首先要对特征进行分箱(分组:将一种特征的组成元素进行分组),分箱之后,对于其中第i组的WOE值公式如下:
    在这里插入图片描述
    • 其中,pyi表示该组中的正例占负例样本的比例,pni表示整体的正例占负例样本的比例。
    • 根据ln函数的特性,就是当这个组中响应样本的比例比总体的响应比例小时为负数,相等时为0,大于时为正数。
  • 我们可以把所有分组的WOE值的绝对值加起来,这个可以在一定程度上表示这个变量的预测能力,但是我们一般不会这么做,因为对于分组中的样本数量相差悬殊的场景,WOE值可能不能很好的表示出这个变量的预测能力,我们一般会用到另一个值:IV值。这个值在计算的时候,比WOE值多考虑了一层该变量下该分组占该变量下所有样本的比例。

IV

  • IV值的计算公式是在WOE的基础上多乘了一个(py_i-pn_i)
    在这里插入图片描述
  • 把分组计算出来的所有IV值加起来,就是这个变量的IV值,然后把所有变量的IV值都算出来,就可以根据IV值的大小来看出变量的预测能力。

分箱

  • 数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,是一种将多个连续值分组为较少数量的“分箱”的方法。说白了就是将连续型特征进行离散化。
  • 例如,如果我们有一组关于人年龄的数据,我们可以设置一些条件将他们的年龄分组到更少的间隔中。
    • 对连续性特征进行离散化
      机器学习D10——WOE和IV编码_第1张图片
  • 注意:
    • 分箱的数据比一定必须是数字,它们可以是任意类型的值,如“狗”,“猫”,“仓鼠”等。分箱也用于图像处理,通过将相邻像素组合成单个像素,它可用于减少数据量。
  • 分箱的作用和意义
    • 离散特征的增加和减少都很容易,易于模型的快速迭代,提升计算速度。
    • 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。
    • 特征离散化以后,起到了简化了模型的作用,可以适当降低了模型过拟合的风险。
  • pandas实现数据的分箱:pd.cut()
    机器学习D10——WOE和IV编码_第2张图片
    机器学习D10——WOE和IV编码_第3张图片
  • 注意:我们对特征进行分箱后,需要对分箱后的每组(箱)进行woe编码,然后才能放进模型训练。
    机器学习D10——WOE和IV编码_第4张图片
  • 进行WOE编码其实就是上面的分组结果给个组号标识。
    机器学习D10——WOE和IV编码_第5张图片
    机器学习D10——WOE和IV编码_第6张图片

样本类别分布不均衡处理

  • 什么是样本类别分布不均衡?
    • 举例说明,在一组样本中不同类别的样本量差异非常大,比如拥有1000条数据样本的数据集中,有一类样本的分类只占有10条,此时属于严重的数据样本分布不均衡。
  • 样本类别分布不均衡导致的危害:
    • 样本类别不均衡将导致样本量少的分类所包含的特征过少,并很难从中提取规律;即使得到分类模型,也容易产生过度依赖与有限的数据样本而导致过拟合问题,当模型应用到新的数据上时,模型的准确性会很差。
  • 解决方法:
    • 通过过抽样和欠抽样解决样本不均衡
    • 过抽样(over-sampling)【就是插值】:
      • from imblearn.over_sampling import SMOTE
      • 通过增加分类中少数类样本的数量来实现样本均衡,比较好的方法有SMOTE算法。
      • SMOTE算法原理介绍:
        • 简单来说smote算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。
      • 环境安装:pip install imblearn
        机器学习D10——WOE和IV编码_第7张图片
        机器学习D10——WOE和IV编码_第8张图片
    • 欠抽样(under-sampling)【多余数据不要】:
      • 通过减少分类中多数类样本的数量来实现样本均衡
      • from imblearn.under_sampling import RandomUnderSampler
        机器学习D10——WOE和IV编码_第9张图片

你可能感兴趣的:(人工智能,机器学习,人工智能)