缩放线性回归模型的特征及其对输出的影响

时间:2019-01-07 16:42:10

标签: machine-learning deep-learning

我的输入数据如下:

data <- read.table(text="species observer
1 A,B
1 A,B
1 B,E
1 B,E
1 D,E,A,C,C
1 F"               , header = TRUE, stringsAsFactors = FALSE)

因此第1列和第2列的范围是-1至1,第3-6列的范围是2000-5000

输出数据范围是5.0到10.0。我希望为每个输入向量预测单个实值输出,并且正在使用具有“ mse”损失函数的线性回归密集神经网络。

我想我应该将第3-6列缩放到0和1之间,并保持第1和2列不变。那是正确的还是我也应该将列1和2缩放到0到1之间?如果我缩放输入,这会影响我的预测输出值还是只会加速学习?有没有必要缩放输出?

1 个答案:

答案 0 :(得分:0)

您应该在相同范围内缩放所有功能。标准方法是将平均值居中并使用方差进行缩放:

1)使用训练集(例如col1_av = average(col1_train),col2_av = average(col2_train),...)计算特征的均值和方差

2)从每个特征中减去相应的平均值并按方差标定比例(例如[x1 = -0.1144887,x2 = 0.3534122,...]->(x1-col1_av)/ col1_var)。测试集中的样本必须使用训练集中估计的值进行缩放。

特征量级如此之大不仅会影响输出,而且不仅会影响学习过程,因为特征量级较大的特征在模型中的权重也会更大。

通常不需要缩放输出。

有趣的读物:https://medium.com/greyatom/why-how-and-when-to-scale-your-features-4b30ab09db5e