X_train,X_test,y_train, y_test = train_test_split(X, y, random_state=0)
我们在机器学习中,经常会使用划分训练集和测试集的类train_test_split,而其中有一个参数是random_state,人们给了它一个好听的名字,叫做随机种子。
那么这个随机种子的作用是什么呢,它该如何设置取值呢?
- 其实随机种子控制每次划分训练集和测试集的模式,其取值不变时划分得到的结果一模一样,其值改变时,划分得到的结果不同。若不设置此参数,则函数会自动选择一种随机模式,得到的结果也就不同。
也就是说:相同的随机种子取值,对应同一种数据集的划分结果。
- 在需要设置random_state的地方给其赋一个值,当多次运行此段代码能够得到完全一样的结果,别人运行此代码也可以复现你的过程。
也就是说:设置随机种子的值可以是任意的,可以是0或1或2,甚至是9999,只不过对应的代码运行结果不同。有助于我们复现别人的实验结果!
- 若不设置此参数则会随机选择一个种子,执行结果也会因此而不同了。虽然可以对random_state进行调参,但是调参后在训练集上表现好的模型未必在陌生训练集上表现好,所以一般会随便选取一个random_state的值作为固定值参数。
也就是说:一般情况下,随机种子的值我们可以随便设置,虽然它是一个超参数,但是我们一开始就固定它的值,不再去对他进行调参,对我们的模型的影响是微乎其微的。
自信点,大胆尝试任何事情,年轻人就是要犯错,就是要经历失败!