Определение случайного начального числа гарантирует, что при каждом запуске алгоритма случайное число будет генерировать одинаковые числа.ИМХО, результат всегда будет таким же, пока мы используем одни и те же данные и те же значения любых других параметров.
Как вы прочли в FAQ Склеарна, он одинаков, либо вы определяете его глобальноnumpy.random.seed()
или параметром random_state
во всех задействованных алгоритмах, при условии, что вы устанавливаете одинаковое число для обоих случаев.
Я беру пример из sklearn docs , чтобы проиллюстрировать это.
import numpy
from sklearn.model_selection import train_test_split
# numpy.random.seed(42)
X, y = np.arange(10).reshape((5, 2)), range(5)
#1 running this many times, Xtr will remain [[4, 5],[0, 1],[6, 7]].
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.33, random_state=42)
#2 try running this line many times, you will get various Xtr
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.33)
Теперь раскомментируйте третью строку.Запустите # 2 много раз.Xtr
всегда будет [[4, 5],[0, 1],[6, 7]]
К numpy.random.seed()
он устанавливает начальное значение по умолчанию (Нет), а затем попытается прочитать данные из / dev / urandom (или аналога Windows), если он доступен, илиСемя с часов иначе. 1018 * Docs *