连续特征离散化常用方法

无监督方法

1、等宽分箱法

比如我们的特征数据在0-100,之间,等宽分成10份,分别为[0-10],[11-20],...,[90-100]

假设有个数据值为11,那么其对应的one-hot向量为[0,1,0,0,0,0,0,0,0,0]

等宽分箱法的缺陷:假设有个别特征值过大,那么和上面分同样多份宽度会拉长,实例就主要集中在前面的箱体中。

那么我们设立阈值之外的一等份。此时我们可以分成[0-10],[11-19],...,[90-99],[100, +∞)增加一个[100, +∞)分段。

2、等频分箱法

区间的边界值要经过选择,使得每个区间包含大致相等的实例数量。比如说 N=10 ,每个区间应该包含大约10%的实例。

监督方法

卡方分箱

卡方分箱包括两个阶段:初始化阶段和自底向上的合并阶段。

下面的示例按照下图实例说明

1、初始化阶段
1)、设置一个卡方阈值。通过自由度和置信度计算出来。比如下面实例中,对相邻的属性计算卡方值:

自由度:(2行-1)*(3列-1)=2

置信度:90%(10%显著性水平)

计算得卡方值为4.6

2)、首先按照属性值(特征值)的大小进行排序,然后每个属性值单独作为一组。

2、合并阶段

1)、对每一对相邻的组,计算卡方值。

2)、根据计算的卡方值,对其中最小的一对邻组合并为一组。(低卡方值表明它们具有相似的类分布)。

3)、不断重复(1),(2)直到计算出的卡方值都不低于事先设定的阈值,或者分组数达到一定的条件(如最小分组数5,最大分组数8)。

卡方相关概念计算可参考:
卡方检验

3、生成one-hot(个人想法)

根据分箱后的结果生成one-hot的向量,样本特征值对比分箱结果划分到one-hot向量里的对应位置。

注:

1、ChiMerge算法推荐使用0.90、0.95、0.99置信度,最大区间数取10到15之间.

2、也可以不考虑卡方阈值,此时可以考虑最小区间数或者最大区间数。指定区间数量的上限和下限,最多几个区间,最少几个区间。

3、对于类别型变量,需要分箱时需要按照某种方式进行排序。


图是著名的鸢尾花数据集sepal-length属性值的分组及相邻组的卡方值。最左侧是属性值,中间3列是class的频数,最右是卡方值。这个分箱是以卡方阈值1.4的结果。

下面分箱是以卡方阈值4.6的结果

1R方法

最小熵法分箱

最小熵法分箱都是类ID3决策树的方法:首先对某个特征所有值进行排序,通过遍历该特征所有的值(离散值,连续值需要处理成离散值)。计算信息增益,选择信息增益大的值作为一个分断点,然后这个断点将数据分成两部分,然后分别对分割的两部分依次进行上面的操作,直到达到停止条件。

一般来说,停止准则是当得到的每个区间中的类标签都是一样。这样将导致到的分割点太多,过拟合。我们可以设置一些停止阈值,比如当信息增益小于阈值就停止等。

通过ID3算法衍生出D2和MDLP(minimum description length principle,最小描述长度准则)基于熵的离散化方法。

D2

D2的迭代类似ID3,它的停止条件为:

  • 1、如果切分后的样本数少于14
  • 2、分割的区间大于8
  • 3、切分的样本都属于同一类

MDLP

MDLP的过程和ID3类似,但是它有特殊的停止方法。一般的,他设置两中停止方法:

  • 1、设置迭代的深度
  • 2、
    gain(1/N)log2(N1)+(1/N)[log2(3k2)(kEntropy(S)k1xEntropy(S1)k2xEntropy(S2)]gain \geq (1/N) * log_2(N-1)+(1/N) * [ log_2 (3^k-2) - (k*Entropy(S) – k_1 x Entropy(S1) – k_2 x Entropy(S2) ]

这个公式的解释可参考Discretizing a continuous variable using Entropy,实现可参考代码
*

MDLP是有论文依据的,有兴趣点击Multi-Interval Discretization of Continuous-Valued Attributes for Classification Learning 阅读

它的实现及使用可以参考:hlin117/mdlp-discretization

有些文章说,MDLP是最好的监督离散化方法。

如果需要转化成one-hot格式,我们可以使用获得到的分割点对应的区间映射成one-hot向量。

其他

数据挖掘过程中的离散方法

非监督

  • 等频率、等宽、等深、K均值

分箱binning

  • Equal width or frequency
  • 1R

熵entropy

  • ID3 type
  • D2
  • Ent-MDLP
  • Mantaras distance

独立性dependency

  • Zeta

精确度accuracy

  • adaptive quantizer

参考

特征工程之分箱

连续特征离散化的方法

Python评分卡建模—卡方分箱

金融风控–>申请评分卡模型–>特征工程(特征分箱,WOE编码)

连续特征离散化方法综述

MDLP 特征离散化
Discretization: An Enabling Technique

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章