20、《百面机器学习》

第1章 特征工程

特征工程从本质上来讲,是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
本章主要讨论两种常用数据类型,结构化数据非结构化数据

  • 结构化数据。可以看作关系型数据库的一张表,每一列都有清晰的定义,包含数值型、类别型两种基本类型;每行表示一个样本的信息。
  • 非结构化数据。主要包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义。并且每条数据的大小各不相同。

1、特征归一化

目的:消除数据特征之间的量纲影响,使得不同指标之间具有可比性。

常用方法:线性函数归一化、零均值归一化

线性函数归一化:将数据映射到 [0,1] 的范围内。

${X_{norm}} = \frac{{X - {X_{{\rm{min}}}}}}{{{X_{{\rm{max}}}} - {X_{{\rm{min}}}}}}$

零均值归一化:将数据映射到均值为0、标准差为1的分布上。

$z = \frac{{x - \mu }}{\sigma }$

如果模型用梯度下降来进行求解,数据归一化主要对收敛速度产生影响。将各个特征映射到同一个区间内,可以使得各个特征的更新速度变得更一致,容易更快地通过梯度下降找到最优解。

通过梯度下降求解的模型通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等。但对于决策树并不适用。例如C4.5节点分裂主要依据信息增益比,而归一化并不会改变信息增益比。
注:经过实践,确实是这样,有可能归一化之后反而使决策树性能下降。

2、类别型特征

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

处理类别型特征的方法:

序号编码,如成绩可以转化为高、中、低三档,分别用3、2、1表示,转换后依然保留了大小关系。

one-hot编码,通常用于处理类别间不具有大小关系的特征,如各种血型,A型编码为(1,0,0,0),B型编码为(0,1,0,0)。

one-hot编码需要注意:当类别取值较多时,用one-hot就会非常稀疏,可以用稀疏向量形式输入来节省空间,目前大部分算法都接受这种输入形式。但是高维one-hot编码会有几个问题:1.knn中高维空间下很难有效衡量两点的距离。2.逻辑回归中参数数量会随维度增高而增多,容易引起过拟合。通常只有部分维度对分类、预测有帮助,因此可以配合特征选择来降维。

注:也就是说需要酌情筛掉。

二进制编码,和one-hot的思想差不多,它允许多位为1。本质是利用二进制对ID进行hash映射,比one-hot节省空间。

还有其他编码方式:Helmert Contrast、Sum Contrast、Polynomial Contrast、Backward Difference Contrast。

3、高维组合特征的处理

目的:提高复杂关系的拟合能力。

组合特征是指把一阶离散特征两两组合,构成高阶组合特征。

4、组合特征

简单地将特征两两组合容易存在参数过多、过拟合等问题。可以通过决策树寻找组合特征。

5、文本表示模型

词袋模型和N-gram模型
词袋模型是最基础的文本表示模型。是将文章以词为单位切分开,忽略词的出现顺序,将文章表示成一个长向量,每一维代表一个单词,该维的权重表示重要程度。常用TF-IDF来计算权重。(注意逆文档频率是要取log对数的)
N-gram是指有些词组不能拆开,那么由这n个词组成的词组(N-gram)也作为一个单独的特征放到向量表示中,构成N-gram模型。
注:总的来说就是,TF-IDF是词袋模型中的一种计算权重的方法,N-gram是一种为了解决词组不可分的一种方法,也属于词袋模型,最后依然要用词袋模型来表示。

主题模型

词袋模型和N-gram模型无法识别两个不同的词或词组具有相同的主题,主题模型可以将具有相同主题的词或词组映射到同一维度上,映射到的这一维度表示某个主题。主题模型是一种特殊的概率图模型。

词嵌入模型
词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射到低维空间(K=50~300)上的一个稠密向量。K维空间的每一维也可以看作一个隐含的主题,但没有主题模型那样直观。

猜你喜欢

转载自www.cnblogs.com/ai-learning-blogs/p/11430159.html