目的:去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
A.
数值类特征归一化:1. Min-Max Scaling: 线性归一化至0~1;2. Z-Score Normalization:(x-均值)/方差, 归一化至(-1,1)
1. 不归一化则损失函数的等高线是椭圆,梯度下降求解时,会震荡,导致收敛速度慢;(公式求导解释);(线性回归,逻辑回归,SVM,神经网络等梯度下降求解的,需要归一化;决策树这样的不需要梯度下降的,不需要归一化)
2. 涉及距离计算时,归一化能提高模型精度;
B.
类别类特征,要编码:
1. 序号编码:有大小关系的特征,例如成绩,可编码为<高,中,低>三挡;
2. One-hot编码:应用最广泛的编码方式;多维稀疏向量,只有1个是1其余全是0;可用稀疏向量表示来降低空间开销;
可使用特征选择来降低维度。高维特征会带来如下问题:a. K近邻算法中,高维空间下的两点间距离难以有效衡量;b. LR模型中,高维特征带来参数量大增,易造成过拟合;c. 通常只有部分维度对分类、预测有帮助;
3. 二进制编码(什么时候用?)
4. Word-embedding
C.
二阶组合特征:特征A有a种取值,特征B有b种取值,组合特征AB有a*b种取值,用a*b个0-1变量表示;
用户ID*物品ID:维度太高了,参数太多;所以改用FM(其实就是矩阵分解),参数个数降至:用户数*K+物品数*K;
D.
自动寻找好用的特征组合:可以用GBDT(Facebook2014的GBDT+LR)
GBDT可以学到更高阶的特征组合;FM只能学到2阶特征组合;
深度学习也是自动特征工程(前面的层抽的是低级特征,后面的层抽的是高级特征)
E. 文本的特征:
1. TF-IDF;2.N-gram词组加入TF-IDF向量;3.LDA;4.Word-embedding(每个维度可以视为主题);5.神经网络(越后面的层越抽取高级语义特征)
F. Word2Vec:
最原始的Word2Vec是神经网络+softmax分类;因为softmax函数的分母涉及到所有单词,速度太慢;所以有了Hierarchical Softmax和Negative Sampling;
LDA VS Word2Vec:
LDA用的是"文章-单词"文章内的共现;Word2Vec用的是“上下文-单词”上下文内的共现;
LDA是基于概率图模型的生成式模型,其似然函数写成若干条件概率连成的形式,其中包括要推测的隐含变量(主题);
词嵌入模型一般是神经网络形式,似然函数定义在网络的输出之上,通过学习网络的权重以得到单词的稠密向量表示;
G. 图像训练数据扩充
有效信息来自于:1. 训练数据中蕴含的信息;2. 人们往训练数据或者往模型里加入的先验信息;
1. 随机旋转、平移、缩放、裁剪、填充、左右翻转;
2. 对像素添加噪声扰动,如椒盐噪声、高斯白噪声;
3. 颜色变换;
4. 改变图像的亮度、清晰度、对比度、锐度等;
5. 先对图像进行特征提取,然后应用通用的数据过采样技术,例如SMOTE(同一类别的2个近邻样本之间用随机线性差值生成假样本)
6. GAN网络生成;
7. 使用迁移学习,利用里一个类似任务上训练好的模型前几层;从而使得本任务小训练集也能得到不错的模型;