Разница между функциями randomSplit и traintestsplit в PySpark заключается в способе разделения данных на обучающий и тестовый наборы. 12
randomSplit сначала сортирует части данных, а затем разделяет их. 2 Это может привести к тому, что обучающие партии не будут отражать общее распределение данных, особенно если целевая переменная бинарная. 2 Поэтому при работе с большими объёмами данных для моделей машинного обучения рекомендуется избегать использования randomSplit. 2
traintestsplit работает путём случайной выборки процента данных, которые будут использоваться для обучающего набора. 1 Оставшиеся данные идут в тестовый набор. 1 Процент данных, которые используются для обучающего набора, называется размером обучения. 1 По умолчанию он равен 0,75, то есть 75% данных идут в обучающий набор, а 25% — в тестовый. 1
Таким образом, traintestsplit предпочтительнее использовать, когда важно обеспечить случайный порядок разделения, а randomSplit — когда необходимо сначала отсортировать данные перед разделением.