文章目录
一、特征工程是什么?
特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用的过程。
二、数据类型
1.结构化数据
结构化数据类型可以看作关系型数据库的一张表,每列都有清晰的定义,包含了数值型、分类型两种基本类型;每一行数据表示一个样本的信息。
2.非结构化数据
非结构化数据主要包括文本、图像、音频、视频数据, 其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同。
三、为什么要进行特征归一化,最常用的归一化方法
为了消除数据特征之间的量纲影响,使得不同指标之间具有可比性。
1.线性函数归一化(Min-Max Scaling)
对原始数据进行线性变换,使结果映射到[0, 1]的范围,实现对原始数据的等比缩放。归一化公式如下:
X
n
o
r
m
=
X
−
X
m
i
n
X
m
a
x
−
X
m
i
n
X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}
Xnorm=Xmax−XminX−Xmin
2.零均值归一化(Z-Score Normalization)
将原始数据映射到均值为 0、标准差为1的分布上。假设原始特征的均值为μ、标准差为σ,归一化公式为:
z
=
X
−
μ
σ
z=\frac{X-\mu}{\sigma}
z=σX−μ
四、如何处理分类型特征?
1.序号编码(Ordinal Encoding)
序号编码通常用于处理类别间具有大小关系的数据。例如:高>中>低,将高表示为3、中表示为2、低表示为1。
2.独热编码(One-hot Encoding)
独热编码通常用于处理类别间不具有大小关系的特征。例如血型,一共有4个取值(A型血、B型血、AB型血、O型血),独热编码会把血型变成一个4维稀疏向量,A型血表示为(1, 0, 0, 0),B型血表示为(0, 1, 0, 0),AB型表示为(0, 0, 1, 0),O型血表示为(0, 0, 0, 1)。
五、文本表示模型
1.词袋模型
词袋模型就是将整个文本看成一袋子词,并忽略每个词出现的顺序。具体地说,就是将整段文本以词为单位切分开, 然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章中的重要程度。
2.N-gram模型
N-gram模型将连续出现的n个词(n≤N)组成的词组(N-gram)作为一个单独的特征放到向量表示中去。
3.词嵌入
词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间上的一个稠密向量(Dense Vector)。
4.深度学习模型
六、Word2Vec
谷歌2013年提出的Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW(Continues Bag of Words)和Skip-gram,结构如图1。
1.CBOW
CBOW的目标是根据上下文出现的词语来预测当前词的生成概率。
2.Skip-gram
Skip-gram根据当前词来预测上下文中各词的生成概率。
图片来源Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[J]. 2013.
CBOW和Skip-gram都可以表示成由输入层(Input)、映射层(Projection)和 输出层(Output)组成的神经网络。其中w(t)是当前所关注的词,w(t−2)、w(t−1)、w(t+1)、w(t+2)是上下文中出现
的词。这里前后滑动窗口大小均设为2。