【问题标题】:Linear Regression With Feature Scaling具有特征缩放的线性回归
【发布时间】:2018-01-02 08:10:55
【问题描述】:

我有一个关于线性回归中的特征缩放的一般性问题。

我有一个包含两年数据的数据集。特定列的第一年的数据价值与第二年的完全不同。我假设在计算第一年的变量和第二年的变量时可能存在不同的属性。

无论如何,这就是数据集的样子。我将显示每年的前 6 行:

Date             Col1
2015-01-01       1500
2015-01-02       1432
2015-01-03       1234
2015-01-04       1324
2015-01-05       1532
2015-01-06       1424
.
.
.
2016-01-01         35
2016-01-02         31
2016-01-03         29
2016-01-04         19
2016-01-05         22
2016-01-06         32

当我想预测这个数据集时,显然它会预测结果是否定的,但实际上数据只是以某种方式重新调整。

如果我这样应用特征缩放,我如何恢复到我的原始数据集进行预测?

normalize <- function(x){
  return((x-min(x)) / (max(x)-min(x)))
}

scaled_data <- 
  df %>%
  group_by(Date %>%
  mutate(NORMALIZED = normalize(Col1))

【问题讨论】:

  • 您需要保存最小值和最大值才能将结果转换回原始比例。
  • 那么答案会是:Predicted_Original_Scaled_Number = Predicted_Feature_Scaled_Number * (Max_Original - Min_Original) + Min_Original?
  • 就是这样
  • 太棒了,谢谢。你介意把它作为一个答案来给你信誉吗?

标签: r regression normalization rescale


【解决方案1】:

当然。尽管您确实自己提供了答案,但不妨将它放在一个函数中。

这个要给定预测值和原向量

backtransform <- function(value, x) { value * (max(x) - min(x)) + min(x) }

或者如果你计算并保持了最小值和最大值,那么

backtransform2 <- function(value, min, max) { value * (max - min) + min }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-15
    • 2014-02-05
    • 2021-05-14
    • 2020-05-19
    • 2017-10-24
    • 2020-05-27
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多