在MATLAB中RandStream中为固定种子选择的内容是否有任何经验法则?我使用它在10分割线性判别分析中随机挑选样本,并根据我选择的种子,我得到相当不同的LDA_CCR_mean
值(这里CCR代表正确的分类率,而LDA_CCR_mean是10分钟CCR的平均值)分裂)。
s = RandStream('mt19937ar','Seed', split*2);
此外,我根据mt19937ar
文档中的第一个示例选择了RandStream
。我怎么知道应该选择其他什么价值?或者哪个值最适合我的应用程序/算法?
答案 0 :(得分:2)
种子值的最佳选择主要取决于您是否希望在使用"random"数据时重现相同的结果。
给定的随机数生成器,从给定的种子s
启动时,将始终生成相同的值序列。假设您通过向算法提供一些随机生成的值来测试算法。如果更改算法,但想要在完全相同的输入数据集上测试新版本,则需要将随机数生成器设置为第一次使用的相同种子,以便生成相同的值序列。默认情况下,RandStream
将使用0作为种子,因此重新初始化流会将其设置回相同的种子。您也可以将它设置为0到2 32 - 1之间的任何固定值。
或者,如果要创建始终以不同种子开头的流,可以使用'shuffle'
选项根据当前时间创建种子:
s = RandStream('mt19937ar', 'Seed', 'shuffle');