【问题标题】:When to split data into train and test dataset何时将数据拆分为训练和测试数据集
【发布时间】:2019-03-27 20:52:16
【问题描述】:

在创建机器学习模型时,我的同行告诉我,应该在机器学习模型构建阶段尽早进行拆分,尤其是在数据标准化或缩放之前。我对机器学习很陌生,所以一直在寻找一些建议。

这就是我正在做的事情

standardized_X = preprocessing.scale(x_data) 

X_train_std, X_test_std, y_train_std, y_test_std = train_test_split(standardized_X, df_breast.CLASS.values, test_size=0.3, random_state=0)

而我被告知顺序应该是

X_train_std, X_test_std, y_train_std, y_test_std = train_test_split(standardized_X, df_breast.CLASS.values, test_size=0.3, random_state=0)

standardized_X = preprocessing.scale(x_data)

另外,如果可以的话,请提供很好的推理。

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    首先,训练集和测试集都应该是总体(联合集)的较好代表。在许多情况下,情况可能并非如此。

    缩放基本上是通过使用样本的均值和标准差来标准化数据。通常,使用的公式称为 z-score scaling [(x-mean)/(standard deviation)]。

    最好先将数据分成训练集和测试集,然后使用它们各自的均值和标准差对每个集进行标准化。如果您事先标准化整个数据集,那么稍后当您将它们分成两个不同的集合时,您的模型可能会有偏差。如果您有两个不同的样本相对于它们自己的中心进行标准化,您可以更好地评估模型的准确性,并且可以更有信心地相信您的模型将扩展到现实生活中的输入。

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 2019-12-11
      • 2019-12-15
      • 1970-01-01
      • 2017-02-20
      相关资源
      最近更新 更多