【问题标题】:best value for fixed seed of RandStreamRandStream 固定种子的最佳价值
【发布时间】:2018-02-19 18:56:31
【问题描述】:

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

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

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

【问题讨论】:

标签: matlab random machine-learning linear-discriminant


【解决方案1】:

种子值的最佳选择基本上取决于您是否希望在仍使用"random" 数据的同时重现相同的精确结果。

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

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

s = RandStream('mt19937ar', 'Seed', 'shuffle');

【讨论】:

    猜你喜欢
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多