shuffle
中sklearn.utils
中的random_state参数是什么?任何人都可以用一些样本解释random_state吗?
答案 0 :(得分:5)
shuffle
用于随机播放矩阵。以编程方式,使用种子编号生成随机序列。如果使用相同的种子,则保证具有相同的随机序列。 random_state
参数允许您将此随机种子提供给sklearn方法。这很有用,因为它允许您为开发和测试目的重现随机性。因此,在shuffle
方法中,如果我使用相同数据集的相同random_state
,那么我始终保证具有相同的随机播放。请考虑以下示例:
X = np.array([[1., 0.], [2., 1.], [0., 0.]])
X = shuffle(X, random_state=20)
如果这给我以下输出,
array([[ 0., 0.],
[ 2., 1.],
[ 1., 0.]])
现在,我始终保证,如果我使用random_state = 20
,我将始终得到完全相同的改组。这对于单元测试特别有用,您可以在其中获得可重现的结果来断言您正在测试的条件。
希望有所帮助!
答案 1 :(得分:0)
除了@Abhinav提供的案例之外,random_state在这种情况下非常有用: 想象一下,你有2个nparrays / dataframes ......,你需要以相同的方式对它们的行进行洗牌(例如,两个数组中的第一行将是第20行,第2行将是第5行......)
你可以通过在两个语句中保持相同的random_state来实现:
array1_shuffled = sklearn.utils.shuffle(array1, random_state=42)
array2_shuffled = sklearn.utils.shuffle(array2, random_state=42)