Семя случайного числа в numpy

numpy.random.seed(7)

В разных руководствах по машинному обучению и анализу данных я видел этот начальный набор с другим номером. Есть ли реальная разница в выборе конкретного начального числа? Или любое число подходит? Целью выбора начального числа является воспроизводимость одних и тех же экспериментов.


person user697911    schedule 26.12.2016    source источник
comment
Да, подойдет любое количество. Это просто ради воспроизводимости.   -  person user2314737    schedule 27.12.2016
comment
Никакой разницы? Кто-то использует очень большое число, кто-то — маленькое. Тогда почему бы не использовать функцию numpy.random.seed() с начальным значением по умолчанию в реализации? Пользователям не нужно передавать в него семя. Боюсь, семя пригодится.   -  person user697911    schedule 27.12.2016


Ответы (1)


Предоставление одного и того же начального числа будет давать одинаковые результаты каждый раз при запуске программы. Это полезно во время разработки/тестирования, чтобы надежно получать одни и те же результаты снова и снова.

Когда ваше приложение находится «в производстве», измените исходный источник на что-то динамическое, например текущее время (или что-то менее предсказуемое), чтобы иметь «типичное случайное поведение». Если вы не укажете начальное значение, многие генераторы по умолчанию будут использовать что-то вроде текущего времени в миллисекундах с некоторой эпохи.

Фактическое число не имеет значения. Я использую свой школьный идентификационный номер (9 цифр) просто по привычке, так как я тщательно его запомнил, но также использую короткие двухзначные числа для быстрых тестов, если я хочу, чтобы их можно было воспроизвести.

person Carcigenicate    schedule 26.12.2016
comment
В продакшене зачем вам все еще нужно это случайное число, если вам не нужно получать тот же результат? - person user697911; 27.12.2016
comment
Идентификатор школы слишком длинный. просто используйте «0» или «1»? - person user697911; 27.12.2016
comment
@user697911 user697911 Во многих языках/библиотеках, если вы не укажете число, по умолчанию будет установлено что-то вроде текущего времени. Это может быть потенциально опасно, если вы пишете что-то вроде программного обеспечения для лотереи, где такое поведение по умолчанию может сделать случайные числа предсказуемыми; особенно если конечный пользователь знает/может догадаться, что является источником случайных чисел. - person Carcigenicate; 27.12.2016
comment
@user697911 user697911 Да, вы можете использовать любой номер. Я просто использую ID, потому что это семя, которое я тестировал в течение многих лет. Это произвольно. - person Carcigenicate; 27.12.2016