PySpark randomSplit против SkLearn Train Split - Случайный вопрос с семенами - PullRequest
1 голос
/ 31 марта 2019

Допустим, у меня есть pandas фрейм данных и применяется sklearn.model_selection.train_test_split с параметром random_seed, установленным в 1.

Допустим, я тогда беру точно такой же pandas фрейм данных и создаю Spark Dataframeс экземпляром SQLContext.Если я применю функцию PySpark randomSplit с параметром seed, установленным в 1, я всегда буду гарантированно получать одно и то же точное разбиение?

1 Ответ

1 голос
/ 31 марта 2019

Как правило, нет.

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

Это входное значениеэто то, что мы называем «семенем».

Будут ли результаты одинаковыми, будет зависеть не только от начального числа, но также от того, будут ли sklearn и pyspark использовать точно такие же реализации генератора случайных чисел, ОС, на которой они работают, архитектура процессора ...

...