参考书籍:百面机器学习
参考链接:百面机器学习-CSDN博客
1: 为什么要对数值类型的特征做归一化?
2: 怎样处理类别型特征?
3: 什么是组合特征?如何处理高维组合特征?
4: 怎样高效地找到组合特征?
5: 有那些文本表示模型?它们各有什么优缺点?
6: Word2Vec 是如何工作的?它和隐狄利克雷模型(LDA)有什么区别与联系?
7: 如何缓解图像分类任务中训练数据不足带来的问题?
特征工程的定义:对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。
特征归一化:
目的:
为了消除数据特征之间的量纲影响,使得不同指标之间具有可比性。以随机梯度下降的实例来说明,如果有两种数值性特征X1,它的取值范围是[0,10], X2为[0,3],然后它的目标函数的图大致是:
所以,当学习率一样时,x1和x2在迭代速度是不一样的。如果把两种数据归一化,它们的更新数度就会一致,容易更快的找到最优解。
特征归一化的方法:
1: 线性函数归一化(Min-Max Scaling)。它对原始数据进行线性变换,使结果映射到[0, 1]的范围,实现对原始数据的等比缩放。归一化公式如下:
2: 零均值归一化(Z-Score Normalization)。它会将原始数据映射到均值为0、标准差为1的分布上。具体来说,假设原始特征的均值为μ、标准差为σ,那么归一化公式定义为
在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,零均值归一化(Z-score standardization)表现更好。
在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用线性函数归一化或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
类别型特征:
概念:类别型特征的原始输入通常是以字符串的形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。
转换的方法:
序号编码(Ordinal Encoding):序号编码通常用于处理类别间具有大小关系的数据。比如成绩,序号编码会按照大小关系对类别型特征赋予一个数值ID,转换后依然保留了大小关系。
独热编码(One-hot Encoding):独热编码通常用于处理类别间不具有大小关系的特征。但是当类别的取值较多时,需要注意:1 使用稀疏向量来节省空间。2: 配合特征选择来降低维度
二进制编码(Binary Encoding):
先用序号编码给每一个类别赋予一个ID,然后再进行二进制编码最终得到0/1特征向量,且维数少于独热编码,节省了存储空间。
高维组合特征的处理
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。这个没有看懂???属于推荐算法的矩阵分解。
组合特征
怎么有效的找到组合特征?基于决策树的特征组合寻找方法。
可以采用梯度提升决策树,该方法的思想是每次都在之前构建的决策树的残差上构建下一棵决策树。(在后面的章节会仔细提到)
文本表示模型
最基础的文本表示模型是词袋模型。