-2

在 MATLAB 的 RandStream 中选择固定种子有什么经验法则吗?我用它在 10 次分割线性判别分析中随机挑选样本,根据我为种子选择的内容,我得到了完全不同LDA_CCR_mean的值(这里 CCR 代表正确分类率,LDA_CCR_mean 是 CCR 在 10 次分割中的平均值)。

s = RandStream('mt19937ar','Seed', split*2);

此外,我mt19937ar根据RandStream文档中的第一个示例进行了选择。我怎么知道应该选择什么其他值?或者什么价值最适合我的应用程序/算法?

4

1 回答 1

2

种子值的最佳选择基本上取决于您是否要在仍然使用“随机”数据的同时重现相同的精确结果。

一个给定的随机数生成器,当从给定的种子开始时s,总是会产生相同的值序列。假设您通过提供一些随机生成的值来测试算法。如果您更改算法,但想在完全相同的一组输入数据上测试新版本,则需要将随机数生成器设置为第一次使用的相同种子,以便生成相同的值序列。默认情况下RandStream将使用 0 作为种子,因此重新初始化流会将其设置回相同的种子。您还可以将其设置为您想要的任何固定值,介于 0 和 2 32 - 1 之间。

或者,如果要创建始终以不同种子开始的流,则可以使用该'shuffle'选项根据当前时间创建种子:

s = RandStream('mt19937ar', 'Seed', 'shuffle');
于 2018-02-19T19:15:34.150 回答