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,可能是直接随机抽取。)


整体,只要正确设置了随机种子,同样的代码一定能得到同样的结果。这是随机种子的意义。(保证一样的代码运行结果相同,而不是每次不同。)


继续加油!:)

0
1
Puss996
好的,知道了,谢谢。
2023-11-29
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程