[英]What happens when you transform the test set using MinMaxScaler
我目前正在预处理我的数据,我知道我必须在我的测试集上使用我在训练集上使用的相同缩放参数。 但是,当我从sklearn
库应用transform
方法时,我注意到一些奇怪的东西。
我首先在我的训练集上使用了preprocessing.MinMaxScaler(feature_range=(0,1))
,它将最大值设置为1,最小值设置为0.接下来,我在我的测试集上使用了minmax_scaler.transform(data)
而我是注意到当我打印出数据框时,我的值大于1.这可能意味着什么?
对于给定的特征x
,您的minmax
缩放到(0,1)
将有效地映射:
x to (x- min_train_x)/(max_train_x - min_train_x)
其中min_train_x
和max_train_x
是训练集中 x
的最小值和最大值。
如果测试集中的x
值大于max_train_x
则缩放变换将返回值> 1
。
除非输入必须在(0,1)
范围内,否则通常不是一个大问题。
实际上,当您希望数据在特定范围内时,使用MinMaxScalar。 例如,如果你有像这样的数据
这是2d阵列
[
[1000,2000],
[3000,4000],
[1,2],
[3,50]
]
现在在这个数据中,我希望最小数量为1,最大数量为100,所以我必须将所有数据转换为范围(1,100)
现在我的数据将成为现实
[
[ 33.97799266,50.47523762],
[100,100],
[1,1],
[1.06602201,2.1885943 ]
]
MinMax Scaler在python中
from sklearn.preprocessing import MinMaxScaler
data = [[1000,2000],[3000,4000],[1,2],[3,50]]
scaler = MinMaxScaler(feature_range=(1, 100))
print(scaler.fit(data))
print(scaler.transform(data))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.