Випадкове число-Set.seed (N) у R [дублікат]


38

На це питання вже є відповідь тут:

Я усвідомлюю, що set.seed()в R використовується один для генерації псевдовипадкових чисел. Я також усвідомлюю, що використовуючи ту саму кількість, як set.seed(123)страхує, ви можете відтворити результати.

Але те, чого я не отримую, - це те, що означають самі цінності. Я граю з кількома функціями, а деякі використовують set.seed(1)або set.seed(300)або set.seed(12345). Що означає це число (якщо щось таке) - і коли я повинен використовувати інше.

Наприклад, у книзі, яку я переробляю - вони використовуються set.seed(12345)при створенні навчального набору для дерев рішень. Потім в іншій главі вони використовуються set.seed(300)для створення випадкового лісу.

Просто не отримайте номер.


6
чи допомагає це? stackoverflow.com/questions/14684437 / ... Крім того ? set.seed () в R забезпечує досить хорошу інформацію.
подв. Номерів

6
Основний сенс використання насіння - вміти відтворювати певну послідовність "випадкових" чисел. Взагалі кажучи, якщо вам не потрібно робити це, ви б не встановлювали насіння. Насіння не має власного значення, за винятком того, що це спосіб сказати генератору випадкових чисел "з чого почати". Ви можете подумати про це дещо як про зв'язок між PIN-кодом та банківським рахунком. PIN пов'язаний з довгою рядком цифр (Ваш номер рахунку), але це не по своїй суті інтерпретується кількості (є інтерпретація, але встановити його, ви ігноруєте , що).
Glen_b -Встановіть Моніку

4
Для рекорду 42 - це завжди правильне насіння
Repmat

Лише зауваження: я рекомендую встановити лише генератор випадкових випадків (i) для налагодження сценарію, знайти деякі конкретні помилки тощо або (ii) для надсилання / публікації результатів, щоб вони могли бути перевірені.
AADF

Відповіді:


39

Вибране вами число насіння є початковою точкою, що використовується при формуванні послідовності випадкових чисел, тому (за умови використання одного і того ж генератора псевдовипадкових чисел) ви отримаєте ті самі результати, що даються однаковим номером насіння. Що стосується вашого другого питання, цей короткий фрагмент з опису еквівалентної функціональності в Stata може бути корисним:

Ми не можемо наголосити на цьому достатньо: не встановлюйте насіння занадто часто. Щоб зрозуміти, чому це така погана ідея, розгляньте обмежувальний випадок: Ви встановлюєте насіння, малюєте одне псевдовипадкове число, скидаєте насіння, знову малюєте і так продовжуєте. Отримані вами псевдовипадкові числа будуть не що інше, як насіння, яке ви запускаєте через математичну функцію. Отримані результати не пройдуть випадковим чином, якщо насіння, які ви вибрали, не пройдуть випадковим чином. Якщо у вас вже були такі цифри, чому ви навіть турбуєтесь використовувати генератор псевдовипадкових чисел?

http://www.stata.com/manuals13/rsetseed.pdf


15
Хто знав, що Stata має таку цікаву документацію: "Інші намагаються скласти випадкове число, розраховуючи, якщо вони містять достатню кількість цифр, результат просто повинен бути випадковим. Це є зміною правила п'ятисекундних для викинутої їжі, і ми визнаємо до використання обох цих правил "
вироджений гессіан

4

Словом, самі цифри насправді нічого не означають! Якщо ви переглядаєте чужий код (наприклад, у двох прикладах, які ви подали вище), цифри не змінюють функціональність функції; також немає "хороших" цифр для конкретних функцій. Це лише до вибору авторів.

Крім того, якщо ви коли-небудь встановлюєте насіння лише один раз у своєму коді, то ви можете вибрати будь-яке число, яке вам подобається. Єдине, на що потрібно бути обережним, це те, що якщо ви взаємодієте з будь-якими іншими функціями, які також використовують випадкові числа, тоді добре вибирати не очевидне насіння (тому менше шансів, що ви обидва будете використовувати одне насіння ).

Однак, як справді чудово зазначає Корковадо, для деяких застосувань потрібно бути дуже обережними щодо свого вибору. Якщо математично вам потрібно кілька псевдовипадкових генерованих чисел, то не може бути візерунка до вибраних вами чисел.


1

Функція set.seed () в R приймає (довільний) цілий аргумент. Таким чином, ми можемо взяти будь-який аргумент, скажімо, 1 або 123 або 300 або 12345, щоб отримати відтворювані випадкові числа.

Крім того, у пакеті TheeachingDemos функція char2seed дозволяє користувачеві встановити насіння на основі символьного рядка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.