Python 里的随机种子random.seed()
Posted 玛丽莲茼蒿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 里的随机种子random.seed()相关的知识,希望对你有一定的参考价值。
一、带有随机性的实验
常见的带有随机性的一些算法及处理步骤:
(1)神经网络当中的初始化权重。
(2)聚类算法,例如K-means算法的初试聚类中心;
(3)随机森林中牵涉到的数据或特征抽样;
(4)随机抽取训练集测试集时,不使用随机种子第一次和第二次随机抽取的数据集会不同;使用随机种子,第一次第二次随机抽取的数据集就会相同。
但是问题来了,因为牵涉到随机因素,那么不要说复现别人的结果,那么即使自己对比自己上一个做的结果,那么结果可能也会不一样。那么怎么复现或者进行结果对比呢?使用随机种子!
(1)神经网络当中的初始化权重。不使用随机种子第一次和第二次的初始化权重会不同,使用随机种子,第一次和第二次的初始化权重就会相同。
(2)聚类算法,例如K-means算法的初始聚类中心。不使用随机种子第一次和第二次的初始聚类中心会不同,使用随机种子,第一次和第二次的初始聚类中心就会相同。
(3)随机森林中牵涉到的数据或特征抽样。不使用随机种子第一次和第二次的抽样会不同,使用随机种子,第一次和第二次的抽样就会相同。
(4)随机抽取训练集测试集时,不使用随机种子第一次和第二次随机抽取的数据集会不同;使用随机种子,第一次第二次随机抽取的数据集就会相同。
二、随机种子
用random.seed()函数指定随机种子。
import random
# 这里我们没有使用random.seed指定随机种子
num = random.randint(1,1000) # 每次得到的随机数都是随机的
# 同理,神经网络的随机权重也是随机的
# 其他随机产生的东西都是随机的
#-----------------------------------------------------------------------
random.seed(2) # 只要在这里指定一个数(多少都可以)
num = random.randint(1,1000) # 每次得到的随机数就相同
# 同理,神经网络的随机权重也相同
# 其他随机产生的东西都相同
#-----------------------------------------------------------------------
random.seed(5) # 换一个数
num = random.randint(1,1000) # 每次得到的随机数都相同,只不过不同于random.seed(2)时
# 同理.。。
以上是关于Python 里的随机种子random.seed()的主要内容,如果未能解决你的问题,请参考以下文章