如何计算/归一化零均值和单位方差

Posted

技术标签:

【中文标题】如何计算/归一化零均值和单位方差【英文标题】:How to calculate/normalize Zero mean and unit variance 【发布时间】:2016-10-10 09:35:30 【问题描述】:

什么是“零均值和单位方差”以及如何为 R 中的单列文件计算/标准化它?我还想将标准化值分为两类:

    标准化值至少比平均值高 0.5 个标准差 (SD) 标准化值至少比平均值低 0.5 个标准差 (SD)

谢谢

【问题讨论】:

【参考方案1】:

引用“零均值和单位方差”表示归一化变量的均值为 0,标准差(和方差)为 1。在 R 中归一化变量的一种方法是使用 scale 函数。这是一个例子:

# create vector
set.seed(1234)
temp <- rnorm(20, 3, 7)

# take a look
> mean(temp)
[1] 1.245352
> sd(temp)
[1] 7.096653

# scale vector
tempScaled <- c(scale(temp))

# take a look
> mean(tempScaled)
[1] 1.112391e-17
> sd(tempScaled)
[1] 1

# find values below 0.5 standard deviation in scaled vector
tempScaled[tempScaled < -0.5]
# find values above 0.5 standard deviation in scaled vector
tempScaled[tempScaled > 0.5]

您也可以很容易地手动缩放变量:

tempScaled2 <- (temp - mean(temp)) / sd(temp) 

> all.equal(tempScaled, tempScaled2)
[1] TRUE

【讨论】:

以上是关于如何计算/归一化零均值和单位方差的主要内容,如果未能解决你的问题,请参考以下文章

sklearn进行对数据标准化、归一化以及将数据还原的方法

深度学习面试题22:批量归一化在实践中的应用

归一化输入梯度消失/爆炸

[转载]中心化(又叫零均值化)和标准化(又叫归一化)

scikit-learn中自带的均值方差归一化函数

归一化输入梯度消失/爆炸小批量梯度下降