特征提取

Feature Extraction/Feature Construction

特征提取/构建:把原始数据中转换为具有物理、统计学意义特征,构建新的人工特征

  • 主观要求高

    • 对问题实际意义、相关领域有研究:思考问题形式、数据结构
    • 对数据敏感:需要观察原始数据
    • 分析能力强
  • 目的:自动构建新特征

    • 信号表示:抽取后特征尽可能丢失较少信息
    • 信号分类:抽取后特征尽可能提高分类准确率
  • 方法

    • 组合属性:混合属性创建新特征
    • 切分属性:分解、切分原有特征创建新特征,如将时间戳分割为日期、上下午
  • 特征工程和复杂模型在某些方便不冲突

    • 虽然很多复炸模型能够学习复杂规律,类似自行构造特征
    • 但是考虑到计算资源、特征数量、学习效率,人工经验构造衍生特征是必要且有益的
  • 特征选择:表示出每个特征对于模型构建的重要性
  • 特征提取:有时能发现更有意义的特征属性
  • 有时从额外划分特征构建,其相较于特征提取,需要人为的手工构建特征,偏经验、规则

通用特征提取

数值型

  • 幅度调整:提高 SGD 收敛速度
    • 归一化
    • 标准化
  • 数据变换
    • 数据标准化(参见 data_preprocessing
    • 二阶、三阶变换
  • 数据离散化:连续值分段
    • 等距切分:各类分布不均
    • 分位数切分:各类分布均匀,但异质性不均
  • 平方、开根:增加非线性化

分类型

  • one-hot 编码:赋予各特征等权
  • hash 技巧:针对文本类别数据,统计文本词表、倾向
  • 多分类转二分类:输入变量类别合并,超类
    • twoing 策略:使两个超类差异足够大的合并点(分割点)
    • ordering 策略:对有序类型,只有两个连续基类才能合并

统计型

  • 统计特征
    • 跨记录聚集:特征取值在样本全体中的情况
      • 分位线
      • 比例
      • 次序
      • count(出现次数)
      • 均值
      • 方查
    • 记录内聚合:属于同记录的同类特征统计指标
      • 均值
      • 方查
  • 时序特征
    • 视为连续型:持续时间、间隔时间
    • 视为离散值:一年中某些时间段

组合特征

  • 特征拼接:GBDT 生成特征组合路径
  • 特征冲突验证:匹配、等于、不等于
  • 关联特征:图传播
    • 依赖于内部、外部关联图数据,如:
      • 账户作为节点:已能确认正、负例样本
      • 交易、社会关系作为边
      • 交易频次、金额作为权重
    • 图传播可以考虑多次传播,即考虑前一次的传播结果中置信度较高者作为下次的起始节点
  • 特征交叉衍生:探索的范围较大,人工特征交叉衍生时建议最后考虑,根据经验:
    • 优先从单变量评价指标较好的特征开始
    • 连续特征内部可能会做交叉衍生
    • 但离散特征内部往往不做交叉衍生
      • one-hot 后特征对应维数较大
      • 单个维度信息量不多,交叉后维数爆炸,不适合某些模型,如:树模型
    • 从离散、连续特征中 分别选择 进行交叉
      • 交叉方式:连续特征为记录内聚合特征时,按离散特征分组聚合
      • 优先考虑此种交叉衍生

降维

Principal Component Analysis

PCA:主成分分析,找到数据中主成分,用主成分来表征原始数据,达到降维目的

  • 思想:通过坐标轴转换,寻找数据分布的最优子空间
    • 特征向量可以理解为坐标转换中新坐标轴方向
    • 特征值表示对应特征向量方向上方差
      • 特征值越大、方差越大、信息量越大
      • 抛弃较小方差特征
  • PCA缺陷:线性降维方法
    • KPCA:核主成分分析,核映射对PCA进行扩展
    • 流形映射降维方法:等距映射、局部线性嵌入、拉普拉斯 特征映射

步骤

  • 对样本数据进行中心化处理(和统计中处理不同)
  • 求样本协方差矩阵
  • 对协方差矩阵进行特征值分解,将特征值从大至小排列
  • 取前p个最大特征值对应特征向量作为新特征,实现降维

Linear Discriminant Analysis

LDA:线性判别分析,寻找投影方向,使得投影后样本尽可能按照 原始类别分开,即寻找可以最大化类间距离、最小化类内距离的方向

  • 相较于PCA,LDA考虑数据的类别信息,不仅仅是降维,还希望 实现“分类”

  • 优点:相较于PCA

    • LDA更适合处理带有类别信息的数据
    • 模型对噪声的稳健性更好
  • 缺点

    • 对数据分布有很强假设:各类服从正太分布、协方差相等, 实际数据可能不满足
    • 模型简单,表达能力有限,但可以通过核函数扩展LDA处理 分布比较复杂的数据
  • Fisher判别分析

Independent Component Analysis

ICA:独立成分分析,寻找线性变换$z=Wx$,使得$z$各特征分量 之间独立性最大

  • 思想
    • 假设随机信号$x$服从模型
      • $s$:未知源信号,分量相互独立
      • $A$:未知混合矩阵
    • ICA通过观察$x$估计混合矩阵$A$、源信号$s$,认为源信号 携带更多信息
  • 若原信号非高斯,则分解唯一,否则可能有无穷多分解
  • 因子分析,也称Blind Source Separation(盲源分离)

算法

  • 大多数ICA算法需要进行数据预处理:先用PCA得到主成分$Y$, 再把各个主成分各分量标准化得到$Z$满足

    • $Z$各分量不相关
    • $Z$各分量方差为1
  • FastICA算法:寻找方向$w$使得随机变量$w^T z$某种 “非高斯性”度量最大化

    • 四阶矩

图像特征提取

  • 提取边缘、尺度不变特征变换特征
  • 以下是传统的图像特征提取方法,现在应该都是CNN进行特征 提取、分类
  • 详情参见machine_learning/cv

LBP特征

  • Sobel Operator
  • Laplace Operator
  • Canny Edge Detector

基于角点

  • Moravec
  • Harris
  • GoodFeaturesToTrack
  • FAST

基于尺度空间

  • Scale-Invariant Feature Transform
  • Speeded Up Robust Feature
  • Brief
  • Oriented Brief

HOG特征

方向梯度直方图特征:通过计算、统计图像局部区域梯度方向直方图 实现特征描述

步骤

  • 归一化处理:图像转换为灰度图像,再利用伽马校正实现
    • 提高图像特征描述对光照、环境变量稳健性
    • 降低图像局部阴影、局部曝光、纹理失真
    • 尽可能抵制噪声干扰
  • 计算图像梯度
  • 统计梯度方向
  • 特征向量归一化(块内)
    • 克服光照不均匀变化及前景、背景对比差异
  • 生成特征向量

文本特征提取

  • 具体参见ml_specification/natural_language_processing/#todo

词袋模型

词袋模型:将文本以词为单位切分token化

  • 文章可以表示为稀疏长向量,向量每个维度代表一个单词

    • 针对有序语句,将单词两两相连
    • 维度权重反映单词在原文章中重要程度
      • 通常使用TF-IDF统计量表示词权重
  • TF-IDF

    • $TF(t, d)$:单词$t$在文档$d$中出现的频率
    • $IDF(t)$:逆文档频率,衡量单词对表达语义的重要性
      • 若单词在多篇文章中出现过,则可能是通用词汇,对区分 文章贡献较小,$IDF(t)$较小、权重较小

N-gram模型

N-gram模型:将连续出现的$n, n \leq N$个词组成的词组N-gram 作为单独特征放到向量中

  • 相较于词袋模型,考虑单词组合意义
  • word stemming:将不同词性单词统一为同一词干形式
    • 同一个词可能有多种词性变化,却拥有相同含义

Word-Embedding模型

词嵌入模型:将每个词都映射为低维空间上的稠密向量

  • Word2Vec:常用词嵌入模型,底层神经网络

    • Continuous Bag of Words:根据上下文词语预测当前词 生成概率
    • Skip-gram:根据当前词预测上下文中各个词的生成概率
  • 实际上直接使用矩阵作为源文本特征作为输入进行训练,难以 得到好结果,往往需要提取、构造更高层特征