【发布时间】:2022-04-19 20:55:15
【问题描述】:
我在一个小型数据集样本上尝试了这两种方法,它返回了相同的输出。那么问题来了,scikit的train-test-split方法中的“shuffle”和“random_state”参数有什么区别呢?
MWE 代码:
X, y = np.arange(10).reshape((5, 2)), range(5)
train_test_split(y, shuffle=False)
Out: [[0, 1, 2], [3, 4]]
train_test_split(y, random_state=0)
Out: [[0, 1, 2], [3, 4]]
【问题讨论】:
-
random_state将为结果的可重复性设置种子,而shuffle设置训练集和测试集是否由混洗数组组成(如果设置为 False,则所有 n数组中的第一个观测值将进入训练数据集,所有其他观测值将进入测试数据集中)。 -
但实际上,如果我将其设置为 false 或选择固定的 random_state,我看不出有什么不同。实际上
shuffle=False时只保留原始数组的顺序,否则会有一个初始随机重新排序,可以通过设置random_state=0来保持。 -
我添加了一个澄清答案。
标签: python machine-learning scikit-learn