特征工程(笔记)

常用的两种数据类型:

1、结构化数据。结构化数据类型可以看作关系型数据库的一张表,每一列都有清晰的定义,包含数值型、类别型两种基本类型,每一行数据代表一个样本信息

2、非机构化数据。非结构化数据主要包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同

一、特征归一化

为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使的不同指标之间具有可比性,否则分析出来的结果会倾向于数值差别比较大的特征

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内,最常用的两种方法主要有

1)线性函数归一化:使结果映射到[0,1]范围内

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

为什么需要对数值型特征做归一化?

通过梯度下降更快更容易找到最优解

实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型;

但是决策树模型并不适用,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益

二、类别型特征

类别型特征主要是针对标签(是否),性别(男女)等只有在有限选项内取值的特征。类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正常运行

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

  1. 序号编码:通常用于处理类别之间具有大小关系的数据。例如成绩,可以分为高中低档
  2. 独热编码:通常用于处理类别间不具有大小关系的特征。例如A、B、C、D可以把A变成一个稀疏向量:A(1,0,0,0)
  3. 二进制编码:先用序号编码给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果

例子:

数据      类别ID      二进制编码      独热编码

A              1            0   0   1            1  0  0  0

B              2            0   1   0            0  1  0  0

C              3            0   1   1            0  0  1  0

D              4            1   0   0            0  0  0  1

三、高维组合特征的处理

什么是组合特征?如何处理高维组合特征?

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征,通过矩阵分解可以处理高维组合特征

四、组合特征

如果简单地两两组合,依然容易存在参数过多、过拟合等问题,而且不是所有的特征组合都是有意义的,因此应该需要找到对哪些特征进行组合

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

基于决策树的特征组合寻找方法,每一条从根节点到叶节点的路径都可以看成一种特征组合的方式

如何有效的构造决策树?

可以采用梯度提升决策树,该方法的思想是每次都在之前构建的决策树的残差上构建下一颗决策树

五、文本表示模型

文本是一类非常重要的非结构化数据,如何表示文本数据一直是机器学习领域的一个重要的研究方向

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

主要的文本表示模型以及优缺点?

词袋模型和N-gram模型

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

常用TF-IDF来计算权重,公式为

                    TF-IDF(t,d) = TF(t,d)*IDF(t),

其中TF(t,d) 为单词t在文档d中出现的频率,

IDF(t)是逆文档频率,用来衡量单词t对表达语义的重要性,表示为IDF(t) = log(文章总数/包含单词t的文章总数+1),直观的解释,如果一个单词在非常多的文章里面都出现,那么它可能是一个比较通用的词汇,对于区分某篇文章特殊语义的贡献较小,因此对权重做一定的惩罚

      将文章进行单词级别的划分并不是一个好的做法,将词组中的单词拆分开来和词组表达意思不相同。通常可以将一个词组中连续的n个词组成的词组(N-gram)作为一个单独的特征放到向量表示中去,构成N-gram模型。(此外,同一个词可能有多种词性变化,却具有相似的含义)

主题模型

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

词嵌入

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

六、Word2Vec

谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW(Continues Bag of Words)和Skip-gram

Word2Vec是如何工作的?与LDA有什么区别和联系?

CBOW是根据上下文出现的词语来预测当前词的生成概率

Skip-gram是根据当前词来预测上下文中各词的生成概率

模型主要由三个部分组成:输入层,映射层,输出层

输入层:输入的每个词由独热编码方式表示,即所有词均表示成一个N维向量,其中N为词汇表中单词的总数。(在向量中,每个词都将与之对应的维度为1,其余维度的值均为0)

映射层(隐藏层):k个隐藏单元的取值可以由N维输入向量以及连接输入和隐含单元之间的N*k维权重矩阵得到

输出层:输出值向量的值可以通过隐含层向量,以及连接隐含层和输出层之间的k*N维权重矩阵计算得到。输出层也是一个N维向量,每维与词汇表中的一个单词相对应。最后对输出层向量应用激活函数,可以计算出每个单词的生成概率

Word2Vec与LDA的区别和联系?

首先,LDA是利用文档中单词的共现关系来对单词按主题聚类,也可以理解为对‘文档-单词’矩阵进行分解,得到‘文档-主题’和‘主题-单词’两个概率分布。Word2Vec是对‘上下文-单词’矩阵进行学习,其中上下文由周围的几个单词组成,由此得到的词向量表示更多地融入上下文共现的特征

主题模型是一种基于概率图模型的生成式模型,其似然函数可以写成若干条件概率连乘的形式,其中包括需要推测的隐含变量

词嵌入模型一般表达为神经网络的形式,似然函数定义在网络的输出之上,需要通过学习网络的权重以得到单词的稠密向量表示

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

当训练一个图像分类模型时,如果训练样本比较少,该如何处理

迁移学习、生成对抗网络、图像处理、上采样技术、数据扩充

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

训练不足带来的问题主要表现在过拟合方面,即模型在训练样本上的效果啃呢个不错,但在测试集效果不佳

解决办法:

1、基于模型方法,主要是采用降低过拟合风险的措施,包括简化模型,添加正则项,继承学习,Dropout超参数等

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

猜你喜欢

转载自blog.csdn.net/weixin_41362649/article/details/83446194
今日推荐