> 文章列表 > 简单理解np.random.seed()函数

简单理解np.random.seed()函数

简单理解np.random.seed()函数

作用:

random.seed() 俗称为随机数种子

不设置随机数种子:你每次随机抽样得到的数据都是不一样的
设置了随机数种子:能够确保每次抽样的结果一样

而random.seed()括号里的数字,相当于一把钥匙,对应一个箱子,同样的数值能够使得抽样的结果一致。

示例:

import numpy as np
np.random.seed(123)  # 先定义一个随机数种子,随意设置一个 123
print(np.random.rand(10))  # 生成10个随机数 并打印np.random.seed(123)  # 再次调用seed,相同的随机数种子
for i in range(10):print(np.random.random())  # 再次生成10个随机数 并打印

输出:

[0.69646919 0.28613933 0.22685145 0.55131477 0.71946897 0.423106460.9807642  0.68482974 0.4809319  0.39211752]
0.6964691855978616
0.28613933495037946
0.2268514535642031
0.5513147690828912
0.7194689697855631
0.42310646012446096
0.9807641983846155
0.6848297385848633
0.48093190148436094
0.3921175181941505

通过输出对比可见,两次同样的随机数种子,产出生成的随机数,是相同的。

应用场景:

在机器学习当中,有很多的处理或者算法是带有一定的随机性,因此当我们在数据挖掘过程当中,牵涉到这样的算法或者处理的时候,结果可能就会产生差异了。
常见的带有随机性的一些算法及处理步骤:
(1)神经网络当中的初始化权重;
(2)聚类算法,例如K-means算法的初试聚类中心;
(3)随机森林算法中牵涉到的数据或特征抽样;
(4)在整体数据集当中,随机抽取样本组成的训练集及测试集。
但是问题来了,因为牵涉到随机因素,那么不要说复现别人的结果,那么即使自己对比自己上一个做的结果,那么结果可能也会不一样。
那么怎么复现或者进行结果对比呢?

复现结果,我们就需要用到随机种子了。