【问题标题】:How to normalize prediction data in a 2nd testing dataset with sigma/mu used in training?如何在训练中使用 sigma/mu 对第二个测试数据集中的预测数据进行归一化?
【发布时间】:2016-08-20 20:08:35
【问题描述】:

我有一个模型用于两个数据集,即训练和测试。在使用 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)  

【问题讨论】:

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


    【解决方案1】:

    提供的代码是正确的方法,您可以在训练期间拟合均值/标准差,然后在测试阶段使用它。 train 和 test 之间的 mu/sigma 不同的事实是正常的,你必须处理它。这种情况的唯一原因是数据集太小,给定足够的数据点,这两个值会收敛(假设数据被正确收集)。

    【讨论】:

    • 正确,我的测试数据集(少于 1k 条记录)与训练集(65k 条记录)相比非常小。感谢您的确认,我将不得不更仔细地查看模型,看看是否还有其他问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2021-12-07
    • 2020-04-17
    • 2019-03-02
    相关资源
    最近更新 更多