Chia tập huấn luyện/kiểm tra
Hầu hết thời gian, khi bạn chạy một mô hình dự báo, bạn cần fit mô hình trên một tập con dữ liệu (tập "training"), rồi kiểm tra dự đoán của mô hình trên phần dữ liệu còn lại (tập "testing").
sdf_random_split() cung cấp cách phân chia data frame của bạn thành các tập training và testing. Cách dùng như sau.
a_tibble %>%
sdf_random_split(training = 0.7, testing = 0.3)
Có hai điều cần lưu ý về cách dùng này. Thứ nhất, nếu các giá trị phân chia không cộng lại thành một, chúng sẽ được scale sao cho tổng bằng một. Vì vậy nếu bạn truyền training = 0.35 và testing = 0.15, bạn sẽ nhận được kích thước gấp đôi so với yêu cầu ban đầu. Thứ hai, bạn có thể dùng bất kỳ tên tập nào bạn muốn, và phân chia dữ liệu thành nhiều hơn hai tập. Do đó, ví dụ sau cũng hợp lệ.
a_tibble %>%
sdf_random_split(a = 0.1, b = 0.2, c = 0.3, d = 0.4)
Giá trị trả về là một list các tibble. Bạn có thể truy cập từng phần tử bằng các toán tử đánh chỉ số list thông thường.
partitioned$a
partitioned[["b"]]
Bài tập này là một phần của khóa học
Nhập môn Spark với sparklyr trong R
Hướng dẫn bài tập
Một kết nối Spark đã được tạo sẵn cho bạn dưới tên spark_conn. Một tibble gắn với metadata của track được lưu trong Spark đã được định nghĩa trước là track_metadata_tbl.
- Dùng
sdf_random_split()để chia metadata của track.- Đưa 70% vào một tập có tên
training. - Đưa 30% vào một tập có tên
testing.
- Đưa 70% vào một tập có tên
- Lấy kích thước (
sdf_dim()) của tibble training. - Lấy kích thước của tibble testing.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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
___