文章目录
- 前言
- 特征处理
- 1、数值型特征归一化
- 2、类别型特征
- 3、组合特征
- 4、文本表示
- 文本特征的预处理
- 1)词袋模型( B a g o f W o r d s Bag \ \ of \ \ Words Bag of Words)
- 2)TF-IDF( T e r m F r e q u e n c y − I n v e r s e D o c u m e n t F r e q u e n c y Term \ \ Frequency-Inverse \ \ Document \ \ Frequency Term Frequency−Inverse Document Frequency)
- 3)主题模型( T o p i c M o d e l Topic \ \ Model Topic Model)
- 4)词嵌入模型( W o r d E m b e d d i n g Word \ \ Embedding Word Embedding)
- 5)Word2Vec
- 5、图像数据不足的处理方法
前言
在机器学习领域,数据和特征的质量往往决定了最后结果的上限。也就是说如果数据和特征的质量不好,即使机器学习的模型再优秀也无法达到理论的最优值。
在本文中,进行讨论的是对数据和特征的处理方法。
数
据
可
以
分
为
{
结
构
化
数
据
非
结
构
化
数
据
数据可以分为 \begin{cases} 结构化数据 \\ 非结构化数据 \end{cases}
数据可以分为{结构化数据非结构化数据
1. 结构化数据
- 结构化数据:可以看做关系型数据集的一张表,每行代表一个样本的信息,每列都有清晰的定义。
结 构 化 数 据 { 数 值 型 数 据 类 别 型 数 据 结构化数据 \begin{cases} 数值型数据 \\ 类别型数据 \end{cases} 结构化数据{数值型数据类别型数据
2. 非结构化数据
- 非结构化数据:该类型的数据无法使用一个简单的数据进行表示,也没有清楚的类别定义,而且每条数据的大小也不相同。
非 结 构 化 数 据 { 文 本 图 像 视 频 音 频 非结构化数据 \begin{cases} 文本 \\ 图像 \\ 视频\\ 音频 \end{cases} 非结构化数据⎩⎪⎪⎪⎨⎪⎪⎪⎧文本图像视频音频
特征处理
1、数值型特征归一化
- 目的:为了消除
量纲
对特征的影响。
可以使得各指标之间处于同一数量级,进而使得不同指标之间具有可比性。
常见的方法
-
1)线性函数归一化
对原始数据进行线性变换,使得 X n o r m ∈ [ 0 , 1 ] X_{norm} \in [0,1] Xnorm∈[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)零均值归一化
将原始数据映射到均值为0,标准差为1
的正态分布上。
X n o r m = X − μ σ X_{norm} = \frac{X-\mu}{\sigma} Xnorm=σX−μ
其中 μ \mu μ为原始数据的均值, σ \sigma σ为原始数据的标准差。
注意:零均值归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。
为什么要做数据归一化?
-
1)提高模型的收敛速度
在这里通过梯度下降的方式来介绍数据归一化的重要性。
假设存在一组数据型数据,其中 x 1 ∈ [ 0 , 3 ] x_1 \in [0,3] x1∈[0,3] x 2 ∈ [ 0 , 10 ] x_2 \in [0,10] x2∈[0,10],可以画出下图中a)中的等值图,图b)是归一化到相同的数值区间之后的等值图。
在学习率相同的情况下,寻找最优解的过程也就是在使得损失函数值最小的 θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2
假设图a)的损失函数为 J = ( 3 θ 1 + 600 θ 2 + b ) 2 J = (3\theta_1 + 600\theta_2 + b)^2 J=(3θ1+600θ2+b)2 ,我们可以明显的看出, x 2 x_2 x2的更新速度要大于 x 1 x_1 x1,所以需要更多的迭代次数 ;
假设图b)的损失函数为 J = ( 0.5 θ 1 + 0.55 θ 2 + b ) 2 J = (0.5\theta_1 + 0.55\theta_2 + b)^2 J=(0.5θ1+0.55θ2+b)2,可以明显的看出 x 1 x_1 x1, x 2 x_2 x2的更新速度是基本相同的,可以更快的找到最优解。 -
2)提升模型的精度
尤其是涉及到一些距离计算的算法时效果显著。
比如算法要计算欧氏距离,上图中 x 1 x_1 x1的取值范围比较小,涉及到距离计算时其对结果的影响远比 x 2 x_2 x2带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。
如何选择对应的归一化方法?
1) 在分类
、聚类
算法中,需要使用距离来度量相似性
的时候、或者使用PCA技术进行降维
的时候,使用零均值归一化方法(Z-score standardization)表现更好。
2) 在不涉及距离度量、协方差计算、数据不符合正太分布
的时候,可以使用线性函数归一化方法或其他归一化方法。
比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
2、类别型特征
- 定义:类别型特征是指性别(男、女)、血型(A、B、AB、O)等只在
有限选项
内取值的特征。 - 类别型特征的原始输入通常是字符串形式
如何处理类别型特征?
- 1)决策树等少数模型可以直接处理
- 2)经过处理转换为数值型特征之后,用过逻辑回归、支出向量机等方法进行处理。
如何对类别型特征进行预处理(如何将类别型特征转化为数值型特征)?
可以通过序号编码
、独热编码
、 二进制编码
三种编码方式对字符串形式的类别型特征进行编码,从而转换成数值型特征。
- 序号编码
通过用于处理类别间具有
大小关系的数据。
比如,成绩的“优,良,差”,可以依据大小关系依次赋值一个数值型ID,“优=3,良=2,差=1”,从而保留了大小关系。 - 独热编码
尤通过用于处理类别间不具有
大小关系的数据。
例如,血型(A、B、AB、O)不具备大小信息,可以分别表示为(A=1000、B=0100、AB=0010、O=0001)
对于类别特征较多情况下,独热编码的注意事项:
- 使用稀疏向量来节省空间。
- 配合特征选择降低维度。
1)在K-近邻算法中,高维特征下两点之间的距离很难得到有效的衡量。
2)在逻辑回归中,参数的数量会随着维度的增高而增加,–> 容易导致过拟合问题。
3)高维特征存在数据冗余(只有部分维度特征,对分类和预测是有帮助的),可以通过特征选择降低维度。
- 二进制编码
可以看做是独热编码的改进方法,从而在一定程度上可以降低特征的维度和节省空间。
3、组合特征
目的
:为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
例如:假设数据的特征向量为
X
=
(
x
1
,
x
2
,
.
.
.
,
x
k
)
X=(x_1, x_2,...,x_k)
X=(x1,x2,...,xk),则基于组合特征的表达式可以表示为:
Y
=
s
i
g
m
o
i
d
(
∑
i
∑
j
w
i
j
∗
(
x
i
,
x
j
)
)
Y=sigmoid(\sum_i \sum_j w_{ij}*(x_i,x_j))
Y=sigmoid(i∑j∑wij∗(xi,xj))
其中
(
x
i
,
x
j
)
(x_i,x_j)
(xi,xj)表示
x
i
x_i
xi和
x
j
x_j
xj的组合特征。
w
i
j
w_{ij}
wij表示组合特征的学习权重,其维度为
∣
x
i
∣
∗
∣
x
j
∣
|x_i|*|x_j|
∣xi∣∗∣xj∣,其中
∣
x
i
∣
|x_i|
∣xi∣和
∣
x
j
∣
|x_j|
∣xj∣分别表示第
i
i
i个特征和第
j
j
j个特征不同取值的个数。
组合特征的维度较高时,需要对特征进行降维(不太好,需要补充)
假如特征的维度较高,则相对应的权重需要学习的参数量也会变的很高。
寻找有效的组合特征
- 原因:并不是所有的特征组合都是有意义的,否则容易产生
参数过多和过拟合
的问题,所以需要寻找有效的组合特征。 - 方法:可以采用
基于决策树的特征组合寻找方法
4、文本表示
文本特征的预处理
(补充内容)
1)词袋模型( B a g o f W o r d s Bag \ \ of \ \ Words Bag of Words)
- 最基本的文本表示模型。
- 定义:将每篇文章看成一袋子词,并忽略每个词出现的顺序。
具体的说,将整篇文章表示成一个长向量,向量的每个维度表示一个单词,该维的权重则反映了这个词在原文章中的重要程度。
2)TF-IDF( T e r m F r e q u e n c y − I n v e r s e D o c u m e n t F r e q u e n c y Term \ \ Frequency-Inverse \ \ Document \ \ Frequency Term Frequency−Inverse Document Frequency)
文本中能观察到的量其实只有两个:词频和文档频率
- 常用于表示一篇文章中单个词的重要性。
T F − I D F ( t , d ) = T F ( t , d ) ∗ I D F ( t ) TF-IDF(t,d) = TF(t,d)*IDF(t) TF−IDF(t,d)=TF(t,d)∗IDF(t)
其中 T F ( t , d ) TF(t,d) TF(t,d)表示单词 t t t在文档 d d d中出现的频率,
I D F ( t ) IDF(t) IDF(t)是逆文档频率,用于衡量单词 t t t对表示语义所起的重要程度。
I D F ( t ) = 文 章 d 的 总 数 l o g 包 含 单 词 t 的 文 章 总 数 + 1 IDF(t) = \frac{文章d的总数}{log包含单词t的文章总数 + 1} IDF(t)=log包含单词t的文章总数+1文章d的总数
注意:
逆文档频率,所以分子是文章总数,方便固定;
分母加1,是为了防止分母为0的情况。
3)主题模型( T o p i c M o d e l Topic \ \ Model Topic Model)
- 作用:从文本库中发现有代表性的主题(得到发现每个主题上面词的分布特征),并且能够计算出每篇文章的主题分布。
4)词嵌入模型( W o r d E m b e d d i n g Word \ \ Embedding Word Embedding)
- 定义:将每个词映射成低维空间上的稠密向量。
(该稠密向量,可以看作是一个隐含的主题,只不过不像主题模型中的主题那样直观。) - 假设有
N
N
N个词,并将每个词映射成一个
K
K
K维向量,权重矩阵可以表示为
N
∗
K
N*K
N∗K;
然后通过神经 网络对权重矩阵进行学习,从而抽取高层的语义特征。
注意:
CNN和RNN可以很好的提取高层的语义特征;
而且减少了网络的待学习参数;
提高的训练速度;
降低了过拟合的风险。
5)Word2Vec
最早、最常用的神经网络词嵌入模型。
W
o
r
d
2
V
e
c
有
两
种
网
络
结
构
{
C
B
O
W
(
C
o
n
t
i
n
u
s
B
a
g
o
f
W
o
r
d
s
)
S
k
i
p
−
g
r
a
m
Word2Vec有两种网络结构 \begin{cases} CBOW (Continus \ Bag \ of \ Words)\\ Skip-gram \\ \end{cases}
Word2Vec有两种网络结构{CBOW(Continus Bag of Words)Skip−gram
(1)CBOW
- 定义:根据上下文出现的单词来预测当前时刻单词的生成概率。
(2)Skip-gram
- 定义:根据当前时刻的单词预测上下文中各词的生成概率。
5、图像数据不足的处理方法
- 数据不足带来的问题:容易造成
过拟合
。 - 解决方法:
1)简化模型(非线性模型改为线性模型);
2)添加约束项来缩小假设空间(L1/L2正则化);
3)集成学习;
4)Dropout超参数
5)扩充数据
常见的数据扩充方法(图片数据)
(1)图像空间上的变化
- 1)在一定程度内的随机旋转、平移、缩放、裁剪、填充、左右翻转等。
(操作的目的是:变换对应着同一目标在不同角度的观察结果。) - 2)对图像中的像素添加噪声扰动,比如椒盐噪声、高斯白噪声等。
- 3)颜色变换。
例如,在图像的RGB颜色空间上进行主成分分析,得到3个主成分的特征向量 p 1 , p 2 , p 3 p_1,p_2,p_3 p1,p2,p3及其对应的特征值 λ 1 , λ 2 , λ 3 \lambda_1,\lambda_2,\lambda_3 λ1,λ2,λ3,然后在每个像素的RGB值上添加增量 [ p 1 , p 2 , p 3 ] ∗ [ α 1 λ 1 , α 2 λ 2 , α 3 λ 3 ] T [p_1,p_2,p_3]*[\alpha_1\lambda_1,\alpha_2\lambda_2,\alpha_3\lambda_3]^T [p1,p2,p3]∗[α1λ1,α2λ2,α3λ3]T,其中 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3是均值为0、方差较小的高斯分布随机数。 - 4)改变图像的亮度、清晰度、对比度、锐度等。
(2)图像特征空间内的变化
- 1)数据上采样技术。
- 2)生成模型可以合成一些新样本。