Task3 - 特征工程

1. 数据分箱

一般在建立分类模型时,需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。比如在建立申请评分卡模型时用logsitic作为基模型就需要对连续变量进行离散化,离散化通常采用分箱法。分箱的有以下重要性及其优势:

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

2. 标准化/归一化

标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1.
归一化把数据变为(0,1)或者(-1,1)之前的小数,为了数据处理方便,把量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较或加权。

标准化与归一化的区别:归一化是将样本的特征值转换到同一量纲下把数据映射到[0, 1]或者[-1, 1]区间内,仅由变量的极值确定,因区间放缩是归一化的一种。标准化是依照特征矩阵的处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。

无量纲的理解:去掉实际过程中的单位

3. Why归一化/标准化?

归一化/标准化是一种线性变换,线性变换由很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。线性变换不会改变原始数据的数值排序。
主要表现为三点:1)模型求解需要,比如加快梯度下降过程 2)无量纲化 3)避免数值问题,比如数值过大。

4. 特征构造

主要包括构造统计量特征(比如求和、比例等),时间特征(包括节假日等),地理信息(比如分箱、分布编码等),非线性变换(包括log/平方/根号等),特征组合(特征交叉等),自己认为可构造的特征。

5. 特征筛选

特征筛选包括:过滤式(filter)、包裹式(wrapper)、嵌入式(embedding)。

  1. 过滤式
    先对数据进行特征选择,然后在训练学习器,常见的方法由Relief/方差选择法/卡方检验法/互信息法
  2. 包裹式
    直接把最终将要使用的学习器的性能作为特征子集的评价准则,常见方法有LVM(Las Vegas Wrapper)
  3. 嵌入式
    结合过滤式和包裹式,学习器训练过程中自动进行了特征选择,常见的有lasso回归

6. 降维

将数据从原来的d微转变为k微的子集(d < n)

Why降维?

  • 降低数据占用空间
  • 减少计算时间
  • 一些算法在高维度数据上表现不好,通过降维来改善算法适用性
  • 删除冗余的特征
  • 有利于可视化

常用方法包括 线性映射和非线性映射两大类
线性映射:PCA主成分分析、LDA线性判别分析
非线性映射:基于核的非线性降维、流形学习、ISOMap

Ps:特征选择也是一种降维

你可能感兴趣的:(Task3 - 特征工程)