一、带有随机性的实验

常见的带有随机性的一些算法及处理步骤:

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

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信