【发布时间】:2017-12-24 14:13:55
【问题描述】:
我不是来自统计学,但是通过使用机器学习和 NN 进行一项工作,我发现缩放数据会产生很多危害。据我所知,在训练测试之前缩放数据并不是一个很好的选择,但是请在训练测试分离之后进行缩放时看看这个例子。
import numpy as np
from sklearn.preprocessing import StandardScaler
train_matrix = np.array([[1,2,3,4,5]]).T
test_matrix = np.array([[1]]).T
e =StandardScaler()
train_matrix = e.fit_transform(train_matrix)
test_matrix = e.fit_transform(test_matrix)
print(train_matrix)
print(test_matrix)
[out]:
[[-1.41421356] #train data
[-0.70710678]
[ 0. ]
[ 0.70710678]
[ 1.41421356]]
[[ 0.]] #test data
StandardScaler 类将为每个数据集执行两个不同的缩放过程,可能会损害您的 NN 结果的错误是:
在训练矩阵 1 中为 -1.41421356,而在测试矩阵 1 中为 0。现在假设您使用训练权重的测试数据创建了一个预测模型。对于 1,您将收到完全不同的结果。如何克服这一点?
【问题讨论】:
标签: python scikit-learn statistics neural-network