sklearn中的随机状态意义

时间:2018-11-06 10:52:42

标签: python scikit-learn

我正在train_test_split的{​​{1}}上工作,我只是不理解sklearn参数。它的功能到底是什么,为什么要使用它。

请提供一个必要的示例。

谢谢。

1 个答案:

答案 0 :(得分:1)

random_state中的

train_test_split参数可帮助您在每次运行该代码时重现相同的结果。

随机状态可确保您生成的拆分是可复制的。 Scikit-learn使用随机排列来生成拆分。您提供的随机状态将用作随机数生成器的种子。这样可以确保以相同顺序生成随机数。

不使用random_state参数

from sklearn.model_selection import train_test_split

a = [1,5,6,7,8,6]
b = [2,3,5,2,1,4]

x1, x2, y1, y2 = train_test_split(a,b,test_size=0.25)

print(x1)
# output: [1, 6, 8, 7]

## run the code again

x1, x2, y1, y2 = train_test_split(a,b,test_size=0.25)

print(x1)
# output: [6, 8, 6, 7]

每次运行代码时,值都会更改。

使用random_state参数

x1, x2, y1, y2 = train_test_split(a,b,test_size=0.25, random_state=42)

print(x1)
# output: [6, 6, 8, 7]

## run the code again
x1, x2, y1, y2 = train_test_split(a,b,test_size=0.25, random_state=42)

print(x1)
# output: [6, 6, 8, 7]

您可以看到复制了相同的值,并且每次运行代码时都会创建相同的拆分。