百面机器学习|学习笔记

百面机器学习|第一章特征工程知识点

2019-01-21  本文已影响62人  蓝白绛

前言

如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点,希望对大家有帮助。

第一章 特征工程

引导语

一句业界经典的话:“Garbage in, garbage out”。对于机器学习问题,数据和特征决定了结果的上限,而模型、算法的选择和优化则是在逐步接近这个上限。
特征工程从本质上来讲,是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
本章主要讨论两种常用数据类型,结构化数据和非结构化数据。

注:主要从数值表示、类别定义来区分。

1、特征归一化

  1. 目的:消除数据特征之间的量纲影响,使得不同指标之间具有可比性
  2. 常用方法有线性函数归一化零均值归一化
  1. 如果模型用梯度下降来进行求解,数据归一化主要对收敛速度产生影响。将各个特征映射到同一个区间内,可以使得各个特征的更新速度变得更一致,容易更快地通过梯度下降找到最优解。
  2. 通过梯度下降求解的模型通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等。但对于决策树并不适用。例如C4.5节点分裂主要依据信息增益比,而归一化并不会改变信息增益比。
    注:经过实践,确实是这样,有可能归一化之后反而使决策树性能下降。

2、类别型特征

  1. 类别型特征指在有限选项内取值的特征。通常为字符串形式。决策树等少数模型能直接处理字符串形式的输入,逻辑回归、SVM等类别型特征必须处理成数值型特征才能正确工作。
  2. 处理类别型特征的方法:

3、高维组合特征的处理

  1. 目的:提高复杂关系的拟合能力。
  2. 组合特征是指把一阶离散特征两两组合,构成高阶组合特征。
    注:注意是离散特征。
    例如将语言(中文、英文);剧集类型(电影、电视剧)两个一阶离散特征组合为二阶特征,则有中文电影、中文电视剧、英文电影、英文电视剧四种类型。
    假设数据的特征向量为X=(x_1,x_2,...,x_k),则有
    Y=sigmoid\sum_i\sum_j w_{ij}<x_i,x_j>如上面的问题,则w的维度为2*2=4。
  3. 当引入ID类型的特征时,通常需要降维。如推荐问题,通常有如下的组合特征:
是否点击 uid=1,item id=1 uid=2,item id=1 uid=2,item id=1 ... uid=m,item id=n
0 1 0 ... 0 0
1 0 1 ... 0 0
... ... ... ... ... ...

如上表,则要学习的参数规模为m\times n,参数规模太大,一种行之有效的方法是经用户和物品分别用k维的低维向量表示(k远小于m和n),则参数的规模变为m\times k+n\times k。实际是矩阵分解

4、组合特征

简单地将特征两两组合容易存在参数过多过拟合等问题。本节提供了一种基于决策树的组合特征寻找方法。
例如一个点击预测问题:输入特征有年龄、性别、用户类型(试用期/付费)、物品类型(护肤/食品)。我们构造一个决策树如下:

1-4 基于决策树的特征组合方法.jpg

从根节点到叶节点的每条路径都可以看成一种特征组合的方式。根据上面建立的决策树,我们有4条路径。则可以得到以下样本的编码方式。

是否点击 年龄 性别 用户类型 物品类型 编码
28 免费 护肤 (1,1,0,0)
36 付费 食品 (0,0,1,1)

如第一条样本,满足图上的下面的两条路径,则可编码为(1,1,0,0)。
注:感觉这种方式确实是组合特征降维的比较好的方式,但是问题是首先要建立一颗树。

5、文本表示模型

  1. 词袋模型和N-gram模型

注:总的来说就是,TF-IDF是词袋模型中的一种计算权重的方法,N-gram是一种为了解决词组不可分的一种方法,也属于词袋模型,最后依然要用词袋模型来表示。

  1. 主题模型
    词袋模型和N-gram模型无法识别两个不同的词或词组具有相同的主题,主题模型可以将具有相同主题的词或词组映射到同一维度上,映射到的这一维度表示某个主题。主题模型是一种特殊的概率图模型,后面第六章第五节会讲。
  2. 词嵌入
    词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射到低维空间(K=50~300)上的一个稠密向量。K维空间的每一维也可以看作一个隐含的主题,但没有主题模型那样直观。

6、Word2Vec

  1. Word2Vec是2013年提出的,是目前最常用的词嵌入模型之一。它实际是一种浅层的神经网络模型,有两种网络结构:CBOW(Continues Bag of Words)和Skip-gram
    COBW根据上下文出现的词语来预测当前词的生成概率,Skip-gram根据当前词来预测上下文中各词的生成概率。结构如下图:
    1-6 Word2Vec的两种网络结构.jpg
    图中w(t)即当前词,w(t-2)w(t-1)w(t+1)w(t+2)即上下文中出现的词,所谓的滑动窗口大小就是上下文取词个数,为2。
  2. CBOW的训练方式:模型有输入层、映射层、输出层。
  1. Word2Vec和LDA的区别和联系:

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

  1. 一个模型能提供的信息一般来源于两个方面:一是训练数据中蕴含的信息;二是模型的形成过程中(包括构造、学习、推理等)人提供的先验信息
  2. 训练不足时则要提供更多先验信息。先验信息作用在模型上,如让模型采用特定的内在结构条件假设或添加一些约束条件。先验信息也可以作用在数据集上,如根据特定的先验假设调整变换扩展数据集,让其展现出更多更有用的信息。
  3. 图像分类任务中,训练数据不足的问题主要表现在过拟合方面,处理方法可以分为两类:
  1. 除了在图像空间进行变换,还可以对图像进行特征提取,然后在图像的特征空间内进行变换,利用一些通用的数据扩充或上采样技术如SMOTE等进行扩充。这些都是一些启发式的变换方法,还可以通过GAN等生成模型合成新样本,还可以借助其他模型或数据来进行迁移学习

小结

本章干货还是很多的,表述非常清晰,非常易懂。之前没有弄懂的东西,比如Word2Vec的训练过程,让我终于了解了结构和训练方法。但是特征工程还有非常多的技巧,特征选择也还有更多的方法,还要多学习其他方法。

结尾

如果您发现我的文章有任何错误,或对我的文章有什么好的建议,请联系我!如果您喜欢我的文章,请点喜欢~*我是蓝白绛,感谢你的阅读!

上一篇 下一篇

猜你喜欢

热点阅读