一、特征归一化

1.1 目的

  1. 消除数据特征之间的量纲影响,使得不同指标之间有可比性(使得个指标处于同一数量级)
  2. 使用梯度下降法时,能够更快的找到最优解

    1.2 归一化方法

    1.2.1 线性函数归一化(Min-Max Scaling)

    对原始数据进行线性变换,使得结果映射到[0,1]的范围,实现对原始数据表的等比缩放。
    归一化格式如下:
    特征工程 - 图1
    其中X为原始数据,特征工程 - 图2,特征工程 - 图3分别为数据最大值和最小值

    1.2.2 零均值归一化(Z-Score Normalization)

    将原始数据映射到均值为0,标准差为1的分布上。假设原始特征的均值为特征工程 - 图4,标准差为特征工程 - 图5,那么归一化格式定义为:
    特征工程 - 图6

    1.3 总结

    在实际应用中,通过梯度下降法求解的模型通常需要归一化,包括线性回归,逻辑回归,支持向量机,神经网络等模型。
    但不适用于决策树模型,因为决策树进行结点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比根特征是否归一化无关,因为归一化不会改变样本在特征上的信息增益。

    二、类别型特征

    类别型特征(Categorical Feature)主要指性别(男,女),血腥(A,B,AB,O)等只有在有限选项内取值的特征。类别型特征原始输入通常是字符串形式,除了决策树等少数模型能处理字符串形式的输入,对于逻辑回归,支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。

    2.1 序号编码

    序号编码通常用于处理类别间具有大小关系的数据。例如成绩,可以分为低,中,高三挡,并且存在“高>中>低”的排序关系。
    序号编码会按照大小关系对类别性特征赋予一个数值ID,例如高表示为3、中表示为2,低表示为1,转换后依然保留了大小关系。

    2.2 独热编码

    独热编码通常用于处理类备件不具有大小关系的特征。例如血型,一共有四个取值(A,B,AB,O),独热编码会把血型变成一个4维稀疏向量,A型:(1,0,0,0),B型:(0,1,0,0),AB型:(0,0,1,0),O型:(0,0,0,1)
    当类别较多时,注意一下问题:

  3. 使用稀疏向量来节省空间。假设v = [ 0 , 0 , 0 , 1 , 0 , 0 , 1 ] 稀疏向量表示为( 7 , [ 3 , 6 ] , [ 1 , 1 ] ),7代表长度,[3,6]代表非零元素下标,[1,1]代表非零元素的值。

  4. 配合特征选择来降低维度,高维度特征会带来一下问题:
  • 在K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量
  • 在逻辑回归中,参数的数量会随着维度的增高而增加,容易引起过拟合的问题
  • 通常只有部分维度是对分为、预测有帮助的

    2.3 二进制编码

    步骤:
  1. 先用序号编码给每个类别赋予一个类别ID
  2. 对类别ID进行对应的二进制编码

如血型(A,B,AB,O),先用序号给每个类别一个ID,A:1,B:2,AB:3,O:4,再将ID用二进制表示:

类别 ID 二进制表示
A 1 0 0 1
B 2 0 1 0
AB 3 0 1 1
O 4 1 0 0

二进制编码本质上是利用二进制对ID进行哈希映射,最终得到0/1特征向量,且维数少于独热编码,节省了存储空间。

三.高维组合特征的处理

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
例如广告点击预估问题,原始数据由语言和类型两种离散特征组成,为了提高拟合能力,语言和类型可以组成二阶特征。
离散特征:

是否点击 语言 类型
0 中文 电影
1 英文 电影
1 中文 电视剧
0 英文 电视剧

组合特征:

是否点击 语言=中文
类型=电影
语言=英文
类型=电影
语言=中文
类型=电视剧
语言=英文
类型=电视剧
0 1 0 0 0
1 0 1 0 0
1 0 0 1 0
0 0 0 0 1

随着原始特征维数的增多,组合特征的维数会快速增长。
处理高维的组合特征一个有效的方式为:将原始特征使用低维向量表示(矩阵分解的思路)

四、组合特征

上面介绍了将离散特征两两组合来提高复杂关系的拟合能力,也介绍了降维的方法来减少参数量。但是当原始数据特征特别多的时候,就需要我们辨别一下哪些特征组合是有意义的。其中一种方式是基于决策树的特征组合寻找方法。

五、文本表示模型

文本是非结构化的数据,表示文本数据是机器学习领域的一个重点研究方向。常用方式有:

5.1 词袋模型

将文本以单词为单位切分开,每一维代表一个单词,文本就表示成了一个长向量。每一维有一个对应权重,表示这个词在文章中的重要程度,常用TF-IDF来计算权重:
特征工程 - 图7
特征工程 - 图8表示单词t在文档d中出现的频率。特征工程 - 图9是逆文档频率,衡量单词t对表达语义的重要性,表示如下:
特征工程 - 图10
可以理解为,如果t在很多文章中都出现了,那它可能是比较通用的词汇,对区分语义贡献较小,对其权重进行惩罚。

5.2 N-gram模型

词袋模型将每个单词进行划分,但对于”natural language processing”这样的词汇拆分开来与我们期望获取的语义信息大相径庭。所以采取将连续出现的n个词组成的词组作为一个单独的特征放在向量表示中,就构成了N-gram模型
由于同一词有词性变化,却具有相似的含义,在实际应用中,一般会对单词进行词干抽取(Word Stemming)处理,即将不同词性的单词统一称为同一词干的形式

5.3 主题模型

从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且计算出每篇文章的主题分布

5.4 词嵌入与深度学习模型

词嵌入是将词向量化的模型的统称,核心思想是每个词都映射成低维空间(通常K=50~300)上的一个稠密向量。K维空间中的每一维可以看作一个隐含的主题。假设一篇文章有N个词,每个词映射成了K维向量,用矩阵N*K来表示这篇文章太过于底层,很难得到满意的效果。所以利用深度学习模型来提取高层特征。卷积神经网络和循环神经网络在文本表示中取得了很好的效果。
卷积神经网络和循环神经网络能够更好的对文本进行建模,抽取一些高层的语义特征。减少了网络中的待学习参数,提高了训练速度,并且降低了过拟合的风险

六、Word2Vec(待看)

谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络,它具有两种网络结构,分别是CBOW(continues Bag of Words)和Skip-gram

七、图像数据不足时的处理方法

一种模型所能提供的信息一般来源于两个方面:

  1. 训练数据中的数据
  2. 模型生成过程中(构造,训练,推理),人们提供的先验数据

在图像分类中,训练数据不足会带来过拟合的问题(过拟合即模型在训练样本上的效果不错,但是在测试集上的泛化效果不佳)
解决办法:

  1. 基于模型的方法:
  • 简化模型
  • 添加约束项以缩小假设空间(如L1/L2正则项)
  • 集成学习
  • Dropout
  1. 基于数据的方法:
  • 数据扩充(数据增强,根据一些先验知识,在保持特定信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果),图像中的方法包括:
    • 一定程度内的随机旋转,平移,缩放,裁剪,填充,左右翻转
    • 对像素添加噪声,比如椒盐噪声,高斯白噪声
    • 颜色变换
    • 改变亮度、清晰度、对比度、锐度等
  • 除了在图像空间进行变换,还可以先提取图像特征,在特征空间进行变换。也可以使用生成模型生成一些样本。
  1. 迁移学习,在大规模数据集上 预训练好通用的模型,针对目标任务的小数据集上进行微调(fine-tune)。