Передача различных целых чисел в random_state
семени Генератор псевдослучайных чисел NumPy с этими значениями и делает воспроизводимые в результате "случайные" обучающие и тестовые данные .Это означает, что если вы передадите массив функций a
с random_seed=0
, то использование этого начального значения 0 всегда будет приводить к одним и тем же поезду и тестовым данным.
Когда вы передаете целое число, значение в конечном итоге получает проходв scklearn.utils.check_random_state()
, что становится:
if isinstance(seed, (numbers.Integral, np.integer)):
return np.random.RandomState(seed)
Это, в свою очередь, используется таким классом, как ShuffleSplit
, для вызова случайной перестановки:
rng = check_random_state(self.random_state)
for i in range(self.n_splits):
# random partition
permutation = rng.permutation(n_samples)
ind_test = permutation[:n_test]
ind_train = permutation[n_test:(n_test + n_train)]
yield ind_train, ind_test
Вот пример использования фактического метода, который используется:
>>> np.random.RandomState(0).permutation([1, 4, 9, 12, 15])
array([ 9, 1, 4, 12, 15])
>>> np.random.RandomState(0).permutation([1, 4, 9, 12, 15])
array([ 9, 1, 4, 12, 15])
>>> np.random.RandomState(0).permutation([1, 4, 9, 12, 15])
array([ 9, 1, 4, 12, 15])
>>> np.random.RandomState(100).permutation([1, 4, 9, 12, 15])
array([ 4, 9, 12, 15, 1])
>>> np.random.RandomState(100).permutation([1, 4, 9, 12, 15])
array([ 4, 9, 12, 15, 1])
>>> np.random.RandomState(100).permutation([1, 4, 9, 12, 15])
array([ 4, 9, 12, 15, 1])