在 sklearn.utils.shuffle 中使用 'random_state' 参数?

Use of 'random_state' parameter in sklearn.utils.shuffle?

sklearn.utilsshuffle中的random_state参数是什么?谁能用一些样本解释 random_state?

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,我将始终得到完全相同的洗牌。这对于单元测试特别有用,在单元测试中您希望获得可重现的结果来断言您正在测试的条件。

希望对您有所帮助!

除了@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)