klearn中的random_state算法是不是和np.random.seed的算法不一样
来源:4-3 训练数据集,测试数据集
Puss996
2023-11-28
sklearn中的random_state算法是不是和np.random.seed的算法不一样,为什么我输入相同的种子值,有时候得到的随机结果相同,有时候不同?
以knn那节课为例,seed为666时相同,为222时不同,为22时又相同,请问这是为什么?
写回答
1回答
-
liuyubobobo
2023-11-29
如果你想设置 sklearn 中函数的随机种子,必须靠函数中的参数 random_state。你可以理解成在这个函数中设置了一下随机种子,使用的是你传递的参数。在函数内设置的随机种子会覆盖你在函数外设置的随机种子。(我们自己写的函数也是这么做的。)
如果你是指同样的随机种子,为什么我们自己的函数和 sklearn 的函数的结果不同,sklearn 的函数内部和我们的实现是不一样的,同样的随机种子不能保证同样的结果。(比如 sklearn 内部的实现不一定做了一次 shuffle,可能是直接随机抽取。)
整体,只要正确设置了随机种子,同样的代码一定能得到同样的结果。这是随机种子的意义。(保证一样的代码运行结果相同,而不是每次不同。)
继续加油!:)
012023-11-29
相似问题