我了解随机状态是如何用于随机将数据分割成训练集和测试集的。预料之中,每次更改随机状态后,我的算法都会给出不同的准确度。现在我需要在我的大学提交一份报告,但我无法理解应该提到的最终准确度。我应该选择获得的最高准确度吗?还是应该使用不同的随机状态运行,并取其平均值?或者其他方法?
我了解随机状态是如何用于随机将数据分割成训练集和测试集的。预料之中,每次更改随机状态后,我的算法都会给出不同的准确度。现在我需要在我的大学提交一份报告,但我无法理解应该提到的最终准确度。我应该选择获得的最高准确度吗?还是应该使用不同的随机状态运行,并取其平均值?或者其他方法?
对我个人而言,我会将random_state
设置为特定数字(通常是42
),这样如果我发现程序的准确性有变化,我就知道这不是由于数据拆分方式引起的。
然而,这可能会导致我的神经网络过度拟合到该特定拆分上。即我调整网络使其在该拆分上表现良好,但不一定在另一个拆分上表现良好。因此,我认为最好在提交代码时使用随机种子,这样评审人员就知道您没有过度拟合到特定状态。
要使用sklearn.train_test_split
实现此目的,只需不提供random_state
,它将使用np.random
随机选择一个。