特征工程-------------《百面机器学习》

Posted guohaoblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特征工程-------------《百面机器学习》相关的知识,希望对你有一定的参考价值。

今天打算看看《百面机器学习》,打好基础,方便日后找工作,同时也是打发最近无聊的心情(闲下来就喜欢多想导致心情terrible)。

 

第一章    特征工程

第一节  特征归一化

Q1:为什么需要对数值的特征做归一化?

A1:对数据类型的特征作归一化可以将所有的特征都统一到一个大致相同的数值区间内。避免因量纲的不同带来的影响。

       最常用的方法有:1)线性函数归一化。即 对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。

          2)零均值归一化。将原始数据映射到均值为0,标准差为1的分布

  进行归一化后的数据,能更快地通过梯度下降找到最优解。但是数据归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但是对决策树模型则并不适用(具体原因后续在做补充)

 

第二节 类别型特征

Q1:在对数据进行预处理时,应该怎样处理类别型特征?

A1:出了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。通常包括以下几种类型:

        1)序号编码   2)one-hot编码   3)二进制编码     其中,对于one-hot encoding,类别取值较多的情况下,①使用稀疏向量来节省空间 ②配合特征选择来降低维度

 

第三节 高维组合特征的处理

Q1:什么时组合特征?

A1:为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。

Q2:如何处理高维组合特征?

A2:若用户的数量为m、物品的数量为n,那么需要学习的参数的规模为m*n。在互联网环境下,用户数量和物品数量都可以达到千万量级,几乎无法学习m*n规模的参数。在这种情况下,一种行之有效的方法是将用户和物品分别用k维的低维向量表示(k<<m, k<<n)。这样就可以是的模型的参数量变为(m*k + n*k)。 类似于矩阵分解

 

第四节 组合特征

Q1:怎样有效地找到组合特征?

A1:在实际情况中,会遇到很多高维特征,简单的两两组合会导致参数过多,过拟合等问题。本节介绍了一种基于决策树的特征组合寻找方法。

Q2:给定原始输入该如何有效地构造决策树呢?

A2:可以采用梯度提升决策树,该方法的思想是每次都在之前构造的决策树的残差上构建下一棵决策树。XGBoost或LightGBM等。

 

第五节 文本表示模型

Q1:有哪些文本表示模型?它们各有什么优缺点?

A1:词袋模型(Bag of Words), TF-IDF(Term Frequency-Inverse Document Frequency),主题模型(Topic model),词嵌入模型(Word Embedding)

  词袋模型:就是将每篇文章看成一袋子词,并忽略每个词出现的顺序。具体地说,就是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了该词在文章中的重要程度,常用TF-IDF来衡量

  TF-IDF:如果一个单词在非常多的文章里都出现,那么它可能是一个比较通用的词汇,对于区分某篇文章特殊语义的贡献较小,因此,对权重做一定惩罚。

  主题模型:用于从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且能够计算出每篇文章的主题分布。(后续章节有介绍)

  词嵌入与深度学习模型:词嵌入是一类将词 向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常K=50~300维)上的一个稠密向量。K维空间的每一维也可以看成一个隐含的主题,只不过不像主题模型中的主题那样直观。   深度学习模型中的每个隐层都可以认为对应着不同抽象层次的特征。

 

第六节 Word2Vec

 

Word2Vec是google于2013年提出的词嵌入模型,目前较为常用。本节介绍了其工作原理,以及于LDA(隐狄利克雷模型)。详见P13-15

 

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

Q1:在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?

A1:数据量不足会因过拟合或者欠拟合导致模型的泛化能力不好。解决办法主要分类以下两类:

  1)基于模型的方法,主要是采用降低过拟合风险的措施,包括简化模型(例如将非线性模型简化为线性模型)、添加约束项以缩小假设空间(L1/L2正则项)、集成学习、Dropout超参数等

  2)基于数据的方法,主要通过数据扩充,即根据一些先验知识,在保持特征信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果。

  此外,还可以用GAN合成一些新样本;借助已有的其他模型或数据进行迁移学习等。

 

以上是关于特征工程-------------《百面机器学习》的主要内容,如果未能解决你的问题,请参考以下文章

百面01_特征工程

百面机器学习

程序员面试宝典:百面机器学习+百面深度学习 算法工程师带你去面试

百面机器学习 算法工程师带你去面试(文末留言赠书)

《百面机器学习算法工程师带你去面试》PDF版+epub版

《百面机器学习》姊妹篇《百面深度学习》来了,文末留言赠书