random_state随机种子

random_state 相当于随机数种子,你可以先看一下图片中的代码和运行结果来了解它的作用。图中设置了 random.seed() 就相当于在 SVC 中设置了 random_state。

第一段和第二段代码完全相同,在1-100中取10个随机数,都没有设置 random seed。 它每次取的结果就不同,它的随机数种子与当前系统时间有关。

第三段和第四段代码设置了相同的 random seed(123),它们取的随机数就完全相同,你多运行几次也是这样的。

第五段代码也设置了 random seed (456),但是与前面设置的不同,于是运行取随机数的结果也不同。

random_state 与 random seed 作用是相同的。不仅 SVC 中有 random_state 很多其它的模型也有,你可以从模型对应的文档中查看。交叉验证的时候使用的 ShuffleSplit() 也有 random_state。

在 ShuffleSplit() 设置 random_state 可以让每次划分训练集和验证集的时候都是完全一样的。
在模型(如SVC)中设置 random_state 可以使模型每次用相同的训练集训练结果是一样的,对测试集的预测结果也是一样的。不然的话,你的结果,比如准确度可能会有波动。

如果你在需要设置 random_state 的地方都设置好,那么当别人重新运行你的代码的时候就能得到完全一样的结果,复现和你一样的过程。如果你设置为 None,则会随机选择一个种子。

原文地址:https://www.cnblogs.com/HL-blog/p/8891771.html