2016-04-26 55 views
0

我有一個模型,我正在使用兩個數據集,訓練&測試。我需要在使用scikit-learn構建模型之前使預測變量正常化。如何在訓練中使用sigma/mu來校正第二測試數據集中的預測數據?

比方說我的模型訓練數據:

Training[X1] has mean=10,stddev=1.5 
    Training[X2] has mean=45,stddev=17 
    etc... 

而且我對測試數據文件

Testing[X1] has mean=9,stddev=1.8 
    Testing[X2] has mean=40,stddev=13 
    etc... 

以便它使用相同的比例與原來我如何標準化測試數據文件數據集?

我嘗試使用此代碼,但它似乎不看的權利乍一看:

from sklearn.preprocessing import StandardScaler 
scaler = StandardScaler() 
scaler.fit(X_train) 
X_train = scaler.transform(X_train) 
X_test = scaler.transform(X_test) 

回答

0

給出的代碼是正確的做法,你適合的平均訓練時/ STD後來就只使用它在測試階段。火車和測試之間的mu/sigma不同的事實是正常的,你必須處理它。這種情況的唯一原因是數據集太小,給定足夠的數據點這兩個值會收斂(假設數據正確收集)。

+0

正確,我的測試數據集(少於1k條記錄)與訓練集(65k記錄)相比非常小。感謝您的確認,我必須更仔細地研究模型,以確定是否有其他問題。 – NumericOverflow

相關問題