如何使用训练中使用的sigma / mu来标准化第二个测试数据集中的预测数据?

时间:2016-04-26 19:45:56

标签: python python-2.7 machine-learning scikit-learn

我有一个模型,我正在使用两个数据集,Training&测试。我需要在使用scikit-learn构建模型之前规范化预测变量。

让我们说一下我的模型训练数据:

   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)  

1 个答案:

答案 0 :(得分:0)

提供的代码是正确的方法,您在训练期间适应mean / std,之后在测试阶段使用它。火车和测试之间的mu / sigma不同的事实是正常的,你必须处理它。这种情况的唯一原因是数据集太小,只要有足够的数据点,这两个值就会收敛(假设数据被正确收集)。