归一化与离散化

前言

  • 特征工程中的归一化与离散化

    归一化

为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性

  • 例如,分析一个人的身高和体重对健康的影响,如果 使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围 内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。想要得到更为准确的结果,就需要进行特征归一化 (Normalization)处理,使各指标处于同一数值量级,以便进行分析

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法主要有以下两种:

  • 最大最小值归一化(Min-Max Scaling)。它对原始数据进行线性变换,使结果映射到[0, 1]的范围,实现对原始数据的等比缩放

​ 其中X为原始数据,$X{max}, X{min}$ 分别为数据最大值和最小值

应用场景数值比较集中的情况,如果数据较为稳定,不存在极端的最大最小值

  • 零均值归一化(Z-Score Normalization)也称为标准化。它会将原始数据映射到均值为 0、标准差为1的标准正态分布上。具体来说,假设原始特征的均值为μ、标准差为σ,公式定义为:

应用场景:如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。

  • 非线性归一化:经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射

    • y = log10(x),即以10为底的对数转换函数,并且所有样本数据均要大于等于1

    • sigmoid

    • 三角函数转换

为什么需要对数值型特征做归一化呢?以随机梯度下降的实例来说明归一化的重要性。假设有两种数值型特征,x 1 的取值范围为 [0, 10],x 2 的取值 范围为[0, 3],于是可以构造一个目标函数符合下图中的等值图

在学习速率相同的情况下,$x_1$ 的更新速度会大于 $x_2$ ,需要较多的迭代才能找到最优解。

如果将 $x_1$ 和 $x_2$ 归一化到相同的数值区间后,优化目标的等值图会变成图 b 中的圆形,$x_1$ 和 $x_2$ 的更新速度变得更为一致,容易更快地通过梯度下降找到最优解

在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型

对于决策树模型则并不适用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征 是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益

离散化

离散化的原因

  • 离散特征的增加和减少都很容易,易于模型的快速迭代;
  • 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  • 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  • 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
  • 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  • 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
  • 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险

方法

  • 等宽分桶
    • 将连续型变量的取值范围均匀划成n等份,每份的间距相等;例如,客户的年龄是一个连续型变量,从1到100多。采取等距切分可以把20岁以下的客户划分成一组,20-40岁的客户为一组,40-60年为一组..,以此类分,组距都是20岁
  • 等频分桶
    • 等频分箱是频数上的等宽分箱,它把观察点均匀分为n等份,每份内包含的观察点数相同。假设我们分析的客户共有5万人,等频分段需要先把客户年龄按顺序排列,排列好后可以按5000人一组,把全部订户均匀分为十段
  • 优化分桶
    • 我们需要引入一个评价标准来判断什么样的宽度是合适的,什么样频率是合适的。评价标准可以是IV值,熵或者互信息系数,它衡量了该变量与目标变量之间的相关关系。如果我们选择了IV值作为评价标准,那么在多次划分中,都要计算分箱后的变量与目标变量之间的IV值,最后选择IV值最大的划分作为最优的划分方式
-------------The End-------------
谢谢大锅请我喝杯阔乐~