การแบ่งข้อมูลสำหรับ training/testing
โดยทั่วไปเมื่อรันโมเดลเชิงพยากรณ์ จะต้องฝึกโมเดลบนข้อมูลส่วนหนึ่ง ("training" set) แล้วทดสอบผลการพยากรณ์กับข้อมูลที่เหลือ ("testing" set)
sdf_random_split() ช่วยแบ่ง data frame ออกเป็นชุด training และ testing โดยมีรูปแบบการใช้งานดังนี้
a_tibble %>%
sdf_random_split(training = 0.7, testing = 0.3)
มีสองสิ่งที่ควรทราบ ประการแรก หากค่าสัดส่วนรวมกันไม่เท่ากับ 1 ระบบจะปรับขนาดให้อัตโนมัติ เช่น หากระบุ training = 0.35 และ testing = 0.15 ขนาดที่ได้จะเป็นสองเท่าของที่ขอ ประการที่สอง สามารถตั้งชื่อชุดข้อมูลได้ตามต้องการ และแบ่งข้อมูลออกเป็นมากกว่าสองชุดก็ได้ ตัวอย่างเช่น
a_tibble %>%
sdf_random_split(a = 0.1, b = 0.2, c = 0.3, d = 0.4)
ค่าที่ส่งคืนเป็น list ของ tibble สามารถเข้าถึงแต่ละรายการได้ด้วย list indexing operator ตามปกติ
partitioned$a
partitioned[["b"]]
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
แนะนำ Spark ด้วย sparklyr ใน R
คำแนะนำการฝึกหัด
Spark connection ถูกสร้างไว้ให้แล้วในชื่อ spark_conn และ tibble ที่เชื่อมต่อกับ track metadata ที่เก็บใน Spark ถูกกำหนดไว้ล่วงหน้าในชื่อ track_metadata_tbl
- ใช้
sdf_random_split()เพื่อแบ่ง track metadata- นำข้อมูล 70% ไปใส่ในชุดที่ชื่อ
training - นำข้อมูล 30% ไปใส่ในชุดที่ชื่อ
testing
- นำข้อมูล 70% ไปใส่ในชุดที่ชื่อ
- ดึง
sdf_dim()ensions ของ training tibble - ดึง dimensions ของ testing tibble
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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
___