样本的标准化,归一化,正则化,规范化;有点蒙?

数据分析前需要做样本的标准化,归一化,正则化,规范化。 这四种操作是一个东东?感觉不像。是四种不同的东东?也不太像。 求通俗讲解,有简单例子 那是极好…
关注者
89
被浏览
15,901
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

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

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

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]

概念混用问题的解决

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


示例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的官方文档

6.3. Preprocessing data


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。

参考

en.wikipedia.org/wiki/F

en.wikipedia.org/wiki/N

————————————————