2.4 特征工程【stanford-cs329p】


### Feature Engineering
  • 机器学习算法偏好定义比较好的,固定长度的输入和输出
  • 特征工程在深度学习之前的ML模型最重要的关键
    • 在计算机视觉任务,人们尝试各种特征工程方法然后训练一个SVM分类
  • DL训练神经网络来抓取特征
    • 特征通常和任务是相关的

Tabular Data Features

  • 整数/浮点:直接使用
  • 类别的数据:One-hot编码
    • cat -> [0, 1, 0, 0, 0] # fish, cat, and, dog, unkown
    • 映射稀少的数据为“Unkown”
  • 日期时间:一个特征列
    • [year, month, day, day_of_year, week_of_year, day_of_week]
  • 特征组合:
    • [cat, dog] x [male, female] -> [(cat, male), (cat, female), (dog, male), (dog, female)]

Text Features

  • 用token特征表示文本
    • Bag of words模型(BoW)
      • 把每个词元用One-hot表示,句子就是把全部加起来
      • dog and cat and dinosaur -> [0, 1, 2, 1, 1]
      • 限制:需要自习设计词库,容易缺失上下文信息
    • Word Embeddings模型(Word2vec)
      • 向量化词让相似的单词放的更近
      • 训练的时候是通过从上下文中预测目标词
    • Pre-trained language模型(BERT, GPT)
      • 大的transformer模型
      • 需要大量没标注的数据训练
      • 在下游任务上微调

Imgae/Video Features

  • 传统的手工抽取特征比如SIFT
  • 现在常见的是使用预训练好的深度神经网络
    • RestNet、I3D

Summary

  • 特征非常重要
  • 特征是手工提取或者深度神经网络提取
    • 后者现在已经是主流了