变量处理中的标准化方法

Posted oaksharks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量处理中的标准化方法相关的知识,希望对你有一定的参考价值。

关于标准化的几点理解:

  1. 标准化(Standard),是将数据以一个相同的尺度进行缩放
  2. 归一化(Normalization)是以缩放到[0,1]区间
  3. sklearn中的Scaler,可以将数据缩放到给定的区间内
  4. 归一化可以理解成一种特殊的标准化

使用归一化消除不同量纲之间的差异,一般情况下使用线性模型 务必要对连续特征做归一化

graph LR Standard --> Normalization Standard --> MaxMinScaler Normalization --> Normalizer Normalization --> StandardScaler

MaxMinScaler

注意,以下公式用于只有一个随机变量的情况。

1. 归一化(缩放到[0,1]区间)
\\( X_std = \\fracX-X_minX_max-X_min \\)

2. 缩放到给定的[min, max]区间
\\( X_scaled =X_std * (max - min) + min \\)

说明:

  1. 加上min 可以保证 \\(X_scaled\\) 最小值为 min
  2. \\(X_std\\)最大值为1,保证了 \\(X_scaled\\)的最大值为max
  3. 需要缩放到数据在指定范围时候可以选择此方法,能够较好保留原始特征的信息。

StandardScaler

标准化(Standardization) ,也就是计算Z-Score,可使得数据的均值为0,方差为1,计算公式:

\\( X_z-score = \\fracX-\\mu\\sigma \\)

推导均值为0:

\\[\\bar x_z-score = \\frac1n * (\\fracx_1-\\mu\\sigma + \\fracx_2-\\mu\\sigma + ... + \\fracx_n-\\mu\\sigma) =\\fracx_1+x_2+...+x_n - n*\\mu\\sigma \\]

(equation 1)

其中:

\\[\\mu = \\fracx_1+x_2+...+x_nn => x_1+x_2+...+x_n = n*\\mu \\]

所以equation 1 中的分子为0,可以得到:
\\(\\bar x_z-score = 0\\)

推导方差为1:

\\[\\sigmaz-score = \\frac1n-1 * (\\fracx_2-\\mu\\sigma - \\fracx_1-\\mu\\sigma + ... + \\fracx_n-\\mu\\sigma - \\fracx_n-1-\\mu\\sigma) = \\frac1n-1 * (\\fracx_2-x_1\\sigma + \\fracx_3-x_2\\sigma + ...+ \\fracx_n-x_n-1\\sigma) = \\frac1\\sigma * (\\fracx_2-x_1n-1 + \\fracx_3-x_2n-1 + ...+ \\fracx_n-x_n-1n-1) \\]

(equation 2)

其中:
\\( \\sigma =\\fracx_2-x_1 + x_3-x_2 + ... + x_n-x_n-1n-1 \\)

可以得到:
\\(\\sigmaz-score = 1\\)

需要控制数据的均值和方差时候可以选择此方法。

Normalizer

正则化,利用范数进行归一化,计算方法:

\\( Norm(X_i) = \\fracx_i||X||_p ;where X=\\x_1, x_2, ..., x_i\\ \\)

其中\\(||X||_p\\)表示X的p范数,标准化的过程就是每一个样本除以改变量的p范数,以2范数为例计算方法:

\\( ||X||_2 = \\sqrtx_1^2 + x_2^2 + ... + x_n^2 \\)

X变量的p范数计算方法:

\\( ||X||_p = (\\sum x_1^p + x_2^p + ... +x_n^p)^\\frac1p \\)

\\(L_2\\)范数可以将数据缩放到[0,1]区间:
\\( Norm_2(x_i) = \\fracx_i^2 x_1^2 + x_2^2 + x_i^2 + ... + x_n^2 \\)

因为\\(x_1^2 + x_2^2 + x_i^2 + ... + x_n^2x>=x_i^2>0\\) 所以\\(Norm_2(x_i)\\)也是[0,1]区间。

称呼

上面这几种方式都是标准化方法,也都能实现归一化,但是实际上对它们的翻译是:

  1. MaxMinScaler - 归一化(明显可以把变量缩放到给0,1区间)
  2. StandardScaler - 标准化(因为将数据缩放到一个正太分布了??)
  3. Normalizer - 正则化(使用了范数)

知道它们具体是怎么就好了。。。。

以上是关于变量处理中的标准化方法的主要内容,如果未能解决你的问题,请参考以下文章

什么用于对变量的标准化处理?

如何发现数据中的异常值?对异常值是怎么处理的?

因子分析怎么做?数据为啥要标准化?

如何将大批量数据进行标准差标准化

特征处理都有哪些方法

决策树