Skip to main content
 首页 » 编程设计

R语言标准化与归一化的差异

2022年07月19日110leader

本文介绍统计学中标准化与归一化方法,包括计算公式和应用场景,以及两者的差异。

两者计算公式

标准化(Standardization) 和 归一化(normalization) 是数据缩放的两种方法.

标准化缩放数据集为均值为0,标准化差为1,使用下面的公式:

x n e w _{new} new = (x i _{i} i – μ) / σ

  • x i _{i} i 是数据集中第i个值
  • μ 为样本均值
  • σ 样本标准差

归一化缩放数据集,让每个元素落在0~1之间,使用下面公式:

x n e w _{new} new = (x i _{i} i – x m i n _{min} min) / (x m a x _{max} max – x m i n _{min} min)

  • x i _{i} i 是数据集中第i个值
  • x m i n _{min} min 为数据集最小值
  • x m i n _{min} min 为数据集最大值
    在这里插入图片描述

R 计算示例

首先定义数据集data, 然后利用内置的scale函数进行标准化,并通过mean 和 sd 函数进行验证。
scale返回矩阵,通过as.vector转为向量。并自定义norm函数进行归一化计算。

data <- c(13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71) 
 
sd_data <- as.vector(scale(data)) 
sd_data 
 
mean(sd_data) 
# 0 
sd(sd_data) 
# 1 
 
norm <- function(data){ 
  mi <- min(data) 
  ma <- max(data) 
   
  (data - mi) / (ma - mi) 
} 
 
 
data_norm <- norm(data) 
data_norm 
 

两者的应用场景

当我们进行数据分析时,可能会涉及多个变量,它们采用不同的单位进行表示,我们希望每个变量都有相同的范围,此时可以使用归一化方法。这样可以避免某个变量产生过度影响,特别它们使用不同的单位进行衡量(如一个变量使用厘米,另一个变量使用毫米)。

而标准化数据是为了知道每个值偏离均值多少个标准差。举例,有500个学生成绩,如果希望了解每个成绩偏离均值程度,我们使用标准化方法处理原始数据;假设某个标准分数为1.26,表示该学生的考试成绩比平均考试成绩高出1.26个标准差。

两者如何选择,除了应用场景,我们也要了解两者差异:

  • 归一化后数据的值在0~1之间
  • 标准化数据集后,均值为0,标准差为1,但最大值和最小值没有特定上下限

本文参考链接:https://blog.csdn.net/neweastsun/article/details/124230769
阅读延展