You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何将经极差归一化的数据集还原为原始值?

还原方法说明

极差归一化(Min-Max归一化)的逆运算公式如下:

原始值 = 归一化后的值 × (原始变量最大值 - 原始变量最小值) + 原始变量最小值

注意:必须提前保存原始数据中所有x开头变量的最大值、最小值,仅靠归一化后的df_mod无法完成还原,归一化过程会丢失原始极值信息。


完整可运行代码示例

1. 预先计算并保存原始变量极值、执行归一化

library(dplyr)
# 原始数据集
df <- data.frame(x1=c(1, 2, 3, 2, 1),
                 x2=c(1, 10, 5, 8, 3))

# 提取所有x开头的目标变量
target_vars <- names(select(df, starts_with("x")))

# 存储每个变量的最小值、最大值、极差
min_vals <- summarise_all(select(df, all_of(target_vars)), min, na.rm = TRUE)
max_vals <- summarise_all(select(df, all_of(target_vars)), max, na.rm = TRUE)
range_vals <- max_vals - min_vals

# 执行极差归一化得到df_mod
df_mod <- df%>%
 mutate_at(vars(starts_with("x")), 
           funs((. - min(., na.rm = T))/(max(., na.rm = T) - min(., na.rm = T))))

2. 从df_mod还原原始数据集

df_restored <- df_mod %>%
  mutate_at(vars(starts_with("x")),
            funs(. * range_vals[[cur_column()]] + min_vals[[cur_column()]]))

3. 验证还原结果

执行all.equal(df, df_restored)会返回TRUE,证明还原结果和原始数据集完全一致。


内容的提问来源于stack exchange,提问作者Leprechault

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:45:08