使用 MinMaxScaler 转换测试集时会发生什么
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
缩放转换将 return 值 > 1
.
这通常不是什么大问题,除非输入必须在 (0,1)
范围内。
实际上,当您希望数据在特定范围内时,会使用 MinMaxScalar。例如,如果您有
这样的数据
这是二维数组
[
[1000,2000],
[3000,4000],
[1,2],
[3,50]
]
现在在此数据中,我希望最小数量为 1,最大数量为 100
所以我必须将所有数据转换为范围 (1,100)
现在我的数据将变成
[
[ 33.97799266,50.47523762],
[100,100],
[1,1],
[1.06602201,2.1885943 ]
]
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))
我目前正在预处理我的数据,我知道我必须在我的训练集和测试集上使用相同的缩放参数。但是,当我应用 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
缩放转换将 return 值 > 1
.
这通常不是什么大问题,除非输入必须在 (0,1)
范围内。
实际上,当您希望数据在特定范围内时,会使用 MinMaxScalar。例如,如果您有
这样的数据这是二维数组
[
[1000,2000],
[3000,4000],
[1,2],
[3,50]
]
现在在此数据中,我希望最小数量为 1,最大数量为 100 所以我必须将所有数据转换为范围 (1,100)
现在我的数据将变成
[
[ 33.97799266,50.47523762],
[100,100],
[1,1],
[1.06602201,2.1885943 ]
]
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))