一文解决归一化,标准化,规范化概念的混乱

一文解决归一化,标准化,规范化概念的混乱

flyfish

我们先说WIKI上是如何区分的

Feature scaling is a method used to normalize the range of independent
variables or features of data. In data processing, it is also known as
data normalization and is generally performed during the data
preprocessing step.

在数据处理场景中 特征缩放=数据规范化,这个两个名词是相同的。
Feature scaling = data normalization
一个数字 按照一定规则 变小或者变大,这个数字就是特征,变小就是缩,变大就是放。
特征缩放是一种用于规范自变量或数据特征范围的方法。 在数据处理中,这也称为数据规范化,通常在数据预处理步骤中执行。

data normalization,这里翻译是数据规范化

我们按照WIKI的解释 归一化,标准化都是数据规范化的一种。

规范化 (normalization)
包括以下几种

1、min-max normalization(Rescaling )

数据通常被缩放到 [0, 1] 或者 [−1, 1]

x ′ = x − min ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x^{\prime}=\frac{x-\min (x)}{\max (x)-\min (x)} x=max(x)min(x)xmin(x)
我们看到这种情况,一般把这种normalization叫做归一化。西瓜书36页左侧小字部分写的“规范化”(normalization)是将不同变化范围的值映射到相同的固定范围中,常见的是[0,1],此时亦称“归一化”。
西瓜书这里的解释与WIKI的解释是一致的,西瓜书只写一个常见的[0,1],WIKI是认为[0, 1]和[−1, 1]都常见。有的书籍作者在这里把包含0和1的闭区间[0,1],改成了不包含(0,1)开区间,开区间一般用符号(a,b)表示,意思一般是在实数a和实数b之间的所有实数,但不包含a和b。

2、Mean normalization

x ′ = x − average ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x^{\prime}=\frac{x-\operatorname{average}(x)}{\max (x)-\min (x)} x=max(x)min(x)xaverage(x)

3、Z-score Normalization(Standardization )

这种normalization我们通常叫做标准化

x ′ = x − x ˉ σ x^{\prime}=\frac{x-\bar{x}}{\sigma} x=σxxˉ

x ˉ = average ⁡ ( x ) \bar{x}=\operatorname{average}(x) xˉ=average(x)
数学上我们用另一套字符表示就很清楚
z = x − μ σ z = \frac{x - \mu}{\sigma} z=σxμ

μ = 1 N ∑ i = 1 N ( x i ) \mu = \frac{1}{N} \sum_{i=1}^N (x_i) μ=N1i=1N(xi)
σ = 1 N ∑ i = 1 N ( x i − μ ) 2 \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} σ=N1i=1N(xiμ)2

4、Scaling to unit length

x ′ = x ∥ x ∥ x^{\prime}=\frac{x}{\|x\|} x=xx

概念混用问题的解决

这个地方是存在概念混用的,具体看归一化,标准化,规范化,要看作者的上下文环境或者代码或者数学公式就能分辨出来。

示例1

例如英文的上下文
What is Normalization?
Normalization is a scaling technique in which values are shifted and rescaled so that they end up ranging between 0 and 1. It is also known as Min-Max scaling.
这里的原作者明确告诉读者他的文章里的Normalization指的是Min-Max scaling。

示例2

摘自书籍《机器学习算法原理与编程实践》
归一化方法有两种形式,一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。

归一化的理由
1过大或过小的数值可能导致计算浮点的上溢或下溢
2不同的数值范围导致不同属性对模型的重要性不同,对优化造成困难,训练时间变长
3机器学习常用方法(正则)技巧/模型都假设属性取值在以0为均值的附近
我们看这里的归一化就可以理解成min-max normalization

量纲和无量纲的解释
量纲(dimension)是指物理量的基本属性

无量纲量的量纲为1,所以它的数值与所选用的单位制无关,用纯数表示。(没有单位的物理量)

从集合的角度来看,可以做维度的维一,即抽象化归一,把不重要的,不具可比性的集合中的元素的属性去掉,保留人们关心的那些属性,这样,本来不具有可比性的对象或是事物,就可以归一,即归为一类,然后就可以比较了,并且,人们往往喜欢用相对量来比较,比如人和牛,身高体重都没有可比性,但身高/体重的值,就可能有了可比性,人吃多少,牛吃多少,可能也没有直接的可比性,但相对于体重,或是相对于一天的各自的能量提供需要的食量,就有了可比性;这些,从数学角度来看,可以认为是把有纲量变成了无纲量了。
dimensionless
adj.无量纲的;无因次的;深广无度的;无维的

示例3

scikit-learn的官方文档
https://scikit-learn.org/stable/modules/preprocessing.html#standardization-or-mean-removal-and-variance-scaling

6.3.1.1. Scaling features to a range An alternative standardization is scaling features to lie between a given minimum and maximum value,
often between zero and one, or so that the maximum absolute value of
each feature is scaled to unit size. This can be achieved using
MinMaxScaler or MaxAbsScaler, respectively.

在scikit-learn 这个基于 Python 语言的机器学习工具,它的standardization就像WIKI的 normalization包括多种方法。

结论

防止概念混乱先看上下文,没上下文看数学公式,没数学公式看代码。
Normalization本意可以表示多种方法,如果某篇文章出现的Normalization指代一种方法,可以先用 按照WIKI的Min-Max scaling理解试试,
理解不了换个WIKI的Standardization。
参考
https://en.wikipedia.org/wiki/Feature_scaling
https://en.wikipedia.org/wiki/Normalization_(statistics)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西笑生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值