Разбивка на обучающую и тестовую выборки
Как правило, при построении прогностической модели данные делят на две части: на одной модель обучают («обучающая выборка»), а на другой проверяют качество её предсказаний («тестовая выборка»).
sdf_random_split() позволяет разбить датафрейм на обучающую и тестовую выборки. Синтаксис функции выглядит следующим образом.
a_tibble %>%
sdf_random_split(training = 0.7, testing = 0.3)
Обратите внимание на два важных момента. Во-первых, если сумма долей не равна единице, они будут автоматически нормализованы. Например, если передать training = 0.35 и testing = 0.15, размер каждой части окажется вдвое больше ожидаемого. Во-вторых, вы можете задавать любые названия для частей и делить данные более чем на два подмножества. Следующий вызов также является допустимым.
a_tibble %>%
sdf_random_split(a = 0.1, b = 0.2, c = 0.3, d = 0.4)
Функция возвращает список тиббл. Обратиться к каждому элементу можно стандартными операторами индексирования списков.
partitioned$a
partitioned[["b"]]
Это упражнение является частью курса
Введение в Spark с sparklyr на R
Инструкции к упражнению
Подключение к Spark уже создано и доступно как spark_conn. Тиббл, привязанный к метаданным треков в Spark, предварительно определён как track_metadata_tbl.
- С помощью
sdf_random_split()разбейте метаданные треков на выборки.- Поместите 70% данных в выборку с именем
training. - Поместите 30% данных в выборку с именем
testing.
- Поместите 70% данных в выборку с именем
- Получите
sdf_dim()— размерность обучающей тиббл. - Получите размерность тестовой тиббл.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
partitioned <- track_metadata_tbl %>%
# Partition into training and testing sets
___
# Get the dimensions of the training set
___
# Get the dimensions of the testing set
___