簡體   English   中英

使用MinMaxScaler將測試數據縮放為0和1

[英]Scaling test data to 0 and 1 using MinMaxScaler

使用sklearn的MinMaxScaler,我按如下所示縮放數據。

min_max_scaler = preprocessing.MinMaxScaler()
X_train_scaled = min_max_scaler.fit_transform(features_train)
X_test_scaled = min_max_scaler.transform(features_test)

但是,在打印X_test_scaled.min()時,我有一些負值(值不介於0和1之間)。 這是由於以下事實:我的測試數據中的最小值低於適合最小最大縮放器的火車數據。

SVM分類器對0到1值之間的數據進行標准化處理不會產生多大影響? 另外,將訓練和測試數據連接到一個矩陣中,執行最小-最大縮放以確保值在0到1之間,然后再次將它們分開,是不明智的做法?

如果您可以一次縮放所有數據,那會更好,因為所有數據都由Scaler以邏輯方式管理(都在0到1之間)。 但是對於SVM算法,縮放器將擴展縮放比例,因此必須沒有任何區別。 即使是負數,仍然存在相同的差異。

在文檔中,我們可以看到存在負值,因此我認為它不會對結果產生影響

對於這種縮放,實際上它並不重要,但是通常您不應該使用測試數據來估計預處理的任何參數。 這可能會使您的結果嚴重偏向更復雜的預處理步驟。

確實沒有理由要在此處連接數據,SVM會處理它。 如果您使用的模型需要正值,而您的測試數據不是正數,則可以考慮使用MinMaxScaler以外的其他策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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