2016-04-26 57 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

相关问题