Machine learning 何时将数据拆分为训练和测试数据集

Machine learning 何时将数据拆分为训练和测试数据集,machine-learning,Machine Learning,在创建机器学习模型时,我的同事告诉我,在机器学习模型构建阶段,尤其是在数据标准化或缩放之前,应该尽早进行拆分。我对机器学习非常陌生,所以我一直在寻找一些关于机器学习的建议 这就是我在做的 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, t

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

这就是我在做的

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)

另外,如果你能提供一个很好的理由的话。

首先,训练集和测试测试都应该在某种程度上很好地代表联合集中的人群。在许多情况下,情况可能并非如此

标度基本上通过使用样本的平均值和标准偏差来标准化数据。通常,使用的公式称为z分数标度[x-平均值/标准偏差]

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