Podział na zbiór treningowy i testowy
Podczas budowania modelu predykcyjnego zazwyczaj dopasowujesz go na jednej części danych ("zbiorze treningowym"), a następnie testujesz jego przewidywania na pozostałej części ("zbiorze testowym").
sdf_random_split() umożliwia podział ramki danych na zbiór treningowy i testowy. Sposób użycia jest następujący.
a_tibble %>%
sdf_random_split(training = 0.7, testing = 0.3)
Warto zwrócić uwagę na dwie kwestie. Po pierwsze, jeśli podane wartości nie sumują się do jedynki, zostaną przeskalowane tak, aby tak było. Oznacza to, że podanie training = 0.35 i testing = 0.15 da wyniki dwukrotnie większe od oczekiwanych. Po drugie, możesz użyć dowolnych nazw zbiorów i podzielić dane na więcej niż dwie części. Poniższe wywołanie jest zatem w pełni poprawne.
a_tibble %>%
sdf_random_split(a = 0.1, b = 0.2, c = 0.3, d = 0.4)
Wynikiem funkcji jest lista tibble'i. Do poszczególnych elementów możesz odwoływać się za pomocą standardowych operatorów indeksowania listy.
partitioned$a
partitioned[["b"]]
To ćwiczenie jest częścią kursu
Wprowadzenie do Spark z pakietem sparklyr w R
Instrukcje do ćwiczenia
Połączenie ze Sparkiem zostało już utworzone jako spark_conn. Tibble podłączony do metadanych utworów przechowywanych w Sparku jest dostępny jako track_metadata_tbl.
- Użyj
sdf_random_split(), aby podzielić metadane utworów.- Umieść 70% danych w zbiorze o nazwie
training. - Umieść 30% danych w zbiorze o nazwie
testing.
- Umieść 70% danych w zbiorze o nazwie
- Pobierz wymiary
sdf_dim()tibble'a treningowego. - Pobierz wymiary tibble'a testowego.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
___