Параметр random_state в sklearn's train_test_split - PullRequest
0 голосов
/ 20 октября 2018

Какое значение имеют различные значения случайного состояния для вывода?Например, если я установлю 0 и если я установлю 100, как это повлияет на вывод?

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Передача различных целых чисел в 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])
0 голосов
/ 20 октября 2018

Из документов :

random_state - это начальное число, используемое генератором случайных чисел.

Как правило, это начальное числоиспользуется для создания воспроизводимых результатов.В случае train_test_split random_state определяет, как разделяется ваш набор данных.Если вы не хотите создавать воспроизводимые прогоны, вы можете пропустить этот параметр.

Например, если задано 0 и если я установлю 100, как это повлияет на выход?

Вы всегда получите одно и то же разделение поезда / теста дляконкретное семя.Различные семена приведут к другому разделению поезда / теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...