簡體   English   中英

使用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_xmax_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM