百面机器学习1——特征工程篇

特征归一化

目的:消除数据特征之间的量纲影响

方法:

名称 线性函数归一化(Min-Max Scaling) 零均值归一化(Z-Score Normalization)
方法 对原始数据进行线性变换,使结果映射到[0,1]的范围 将数据映射到均值为0,标准差为1的分布上
公式 \(X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}\) \(z = \frac{x-\mu}{\sigma}\)

特征归一化的好处:

在梯度下降法的过程中,如果两个变量取值区间相同,在反向传播更新的时候两者的速度会更为一致,加快收敛速度。

通过梯度下降法求解的模型一般需要归一化——如线性回归,逻辑回归,支持向量机,神经网络。对于基于信息增益的决策树则不适用

特征编码

已经研究过了,见

高维组合特征的处理

为了提高模型的拟合能力,有时我们会构造高维特征

如这样的特征

是否点击 用户ID 物品ID
1 1 1
0 1 2
0 2 2
1 2 1

经过组合,能得到

是否点击 ID=1,类别=2 ID=2,类别=1 ID=1,类别=1 ID=2,类别=2
1 0 0 1 0
0 1 0 0 0
0 0 0 0 1
1 0 1 0 0

当有\(m\)个用户,\(n\)个物品时,此时的维度变为\(m \times n\),可以说这时候的维度已经十分可观了。

此时我们可以用矩阵分解的方法:将\(R_{m \times n}\)(原来m个用户,n个物品的特征的稀疏矩阵)

分解为

\[R_{m \times n} \approx P_{m \times k}Q_{k \times n} \]

这里我们发现分别得到两个\(m \times k\),\(k \times n\)的两个矩阵,可以看成此时的矩阵是把用户,物品都用\(k\)维向量表示。

求解两个低维矩阵P,Q参数的过程用到了机器学习的方法,用恢复最小误差作为目标函数,具体的求解过程你可以去搜索关键词 推荐系统的Matrix Factorization。

比如我们的模型是线性回归

对于分解前的情况

\[y = \omega x +b = \sum_i\sum_j w \cdot R_{m \times n}+b \]

其中\(\omega\)的参数量为\(m \times n\)

注:这里的运算是点积运算 \(R_{m \times n}\)仅

对于分解后的情况

\[y = \omega x +b = \sum_i\sum_j(\omega_1 \cdot P_{m \times k})(\omega_2 \cdot Q_{k \times n}) + b \]

此时\(\omega_1\)为\(m \times k\)个参数,\(\omega_2\)为\(k \times n\)个参数,此时的参数数量明显减少。

寻找组合特征的方法——基于决策树

对于决策树,每个节点代表一种筛选方式,对于每种从根节点到叶子结点的路径都可以看成一种组合特征。

Word2Vec模型

Word2Vec模型是最常用的词嵌入模型之一,词嵌入即将词语编码。Word2vec实际上是一种浅层神经网络模型,分别为CBOW和Skip-gram

CBOW的目标是根据上下文出现的词语来预测当前词的出现概率。

Skip-Gram是根据当前词预测上下文各词。

百面机器学习1——特征工程篇

两者都可以表示为由输入层,映射层和输出层构成的简单神经网络。

输入层中每个单词由独热编码构成。

在映射层,将N维输入映射成K维特征向量(降维)

在输出层,将\(K\)维特征向量转化为\(N\)维,即又变成独热编码的维度,可以通过\(softmax\)函数得出每一维出现的概率。

训练神经网络,使得生成概率尽可能贴近实际概率。

在训练时由于参数很多,所以很慢,可以依据其他方法进行改进

LDA与Word2Vec的异同

LDA时利用文档中单词的共现关系关系来对单词按主题聚类,也可以理解为对"文档-单词"矩阵进行分解,得到"文档-主题"和"主题-单词"两个概率分布。

而Word2Vec是对于上下文-单词矩阵进行学习。

主题模型是一种基于概率图模型的生成式模型,其似然函数可以看成若干条件函数连乘的形式。

而词嵌入模型一般表达为神经网络的形式,通过网络参数得出单词的稠密向量表示

图像数据不足的处理方法

数据不足而产生的主要问题是过拟合,对于过拟合问题,有两类处理方法——

一是基于模型的方法,主要是采用降低过拟合风险的措施,包括简化模型,添加约束项以缩小假设空间,集成学习

二是基于数据的方法——根据一些先验知识,在保持特定信息的前提下对原始数据进行特定变换。

还可以先对图像特征进行提取,在特征空间种进行变换,如SMOTE算法

或是通过生成对抗网络生成新样本

最后是基于迁移学习的方法,利用已经在大数据集训练出的模型,最后针对目标进行fine-tune。

参考资料

《百面机器学习》第一章 特征工程

(53 封私信 / 81 条消息) 高维组合特征在处理时,如何将高维特征用低维的k维向量表示? - 知乎 (zhihu.com)

上一篇:多项式入门


下一篇:蒟蒻数论笔记:讲给数论小白的快速傅里叶变换