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)时
                                
                              # 同理.。。

                        

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值