标准化与归一化1、标准化(Standardization)和归一化(Normalization)概念1.1、定义归一化和标准化都是对数据做变换的方式,将原始的一列数据转换到某个范围,或者某种形态,具体的:
我在这里多写一点,很多博客甚至书中说,
S
t
a
n
d
a
r
d
i
z
a
t
i
o
n
Standardization
Standardization是改变数据分布,将其变换为服从
N
(
0
,
1
)
N(0,1)
N(0,1)的标准正态分布,这点是错的,Standardization会改变数据的均值、标准差都变了(当然,严格的说,均值和标准差变了,分布也是变了,但分布种类依然没变,原来是啥类型,现在就是啥类型),但本质上的分布并不一定是标准正态,完全取决于原始数据是什么分布。我个举例子,我生成了100万个服从
b
e
t
a
(
0.5
,
0.5
)
beta(0.5,0.5)
beta(0.5,0.5)的样本点(你可以替换成任意非正态分布,比如卡方等等,beta(1,1)是一个服从
U
(
0
,
1
)
U(0,1)
U(0,1)的均匀分布,所以我选了
b
e
t
a
(
0.5
,
0.5
)
beta(0.5,0.5)
beta(0.5,0.5)),称这个原始数据为
b
0
b_0
b0,分布如下图所示: 1.2、联系和差异一、联系说完
S
t
a
n
d
a
r
d
i
z
a
t
i
o
n
Standardization
Standardization和
N
o
r
m
a
l
i
z
a
t
i
o
n
Normalization
Normalization的定义和通常的计算方式,再说说二者的联系和差异。 二、差异
1.3、标准化和归一化的多种方式广义的说,标准化和归一化同为对数据的线性变化,所以我们没必要规定死,归一化就是必须到 [ 0 , 1 ] [0,1] [0,1]之间,我到 [ 0 , 1 ] [0,1] [0,1]之间之后再乘一个255你奈我何?常见的有以下几种:
另外,我会在文章最后介绍一些比较常用的非线性数据处理方式比如boxcox变换等 2、标准化、归一化的原因、用途为何统计模型、机器学习和深度学习任务中经常涉及到数据(特征)的标准化和归一化呢,我个人总结主要有以下几点,当然可能还有一些其他的作用,大家见解不同,我说的这些是通常情况下的原因和用途。
3、什么时候Standardization,什么时候Normalization我个人理解:如果你对处理后的数据范围有严格要求,那肯定是归一化,个人经验,标准化是ML中更通用的手段,如果你无从下手,可以直接使用标准化;如果数据不为稳定,存在极端的最大最小值,不要用归一化。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化表现更好;在不涉及距离度量、协方差计算的时候,可以使用归一化方法。 4、所有情况都应当Standardization或Normalization么当原始数据不同维度特征的尺度(量纲)不一致时,需要标准化步骤对数据进行标准化或归一化处理,反之则不需要进行数据标准化。也不是所有的模型都需要做归一的,比如模型算法里面有没关于对距离的衡量,没有关于对变量间标准差的衡量。比如决策树,他采用算法里面没有涉及到任何和距离等有关的,所以在做决策树模型时,通常是不需要将变量做标准化的;另外,概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。 5、一些其他的数据变换方式5.1、log变换
5.2、sigmoid变换(sigmoid函数)
其图像如下: 5.3、softmax变换(softmax函数)
5.4、boxcox变换boxcox变换主要是降低数据的偏度,通常回归模型残差非正态或异方差的时候,会选择对y做boxcox变换,降低y的偏度,让y更接近正态。具体的,我以后如果写到回归或boxcox回归,和读者同学一起探讨。 6、结语以上,及我个人对数据预处理中标准化和归一化的一些理解和说明。 |
|
来自: LibraryPKU > 《机器学习》