Gradient boosted trees: การทำนาย
เมื่อรันโมเดลเสร็จแล้ว ขั้นตอนถัดไปคือการทำนายผลด้วยโมเดลนั้น ต่างจาก base-R ที่ใช้ฟังก์ชัน predict() สำหรับการทำนาย sparklyr ใช้ฟังก์ชัน ml_predict() แทน โดย ml_predict() รับอาร์กิวเมนต์ 2 ตัว ได้แก่ โมเดล และข้อมูลสำหรับทดสอบ
ml_predict(a_model, testing_data)
กรณีการใช้งานทั่วไปคือการเปรียบเทียบค่าที่ทำนายได้กับค่าจริง ซึ่งสามารถนำมาสร้างกราฟใน R ได้ รูปแบบโค้ดสำหรับเตรียมข้อมูลนี้มีดังต่อไปนี้ ทั้งนี้ การเพิ่มคอลัมน์ prediction ในปัจจุบันต้องทำในเครื่อง local ดังนั้นจึงต้อง collect ผลลัพธ์ก่อน
predicted_vs_actual <- testing_data %>%
select(actual) %>%
collect() %>%
mutate(predicted)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
แนะนำ Spark ด้วย sparklyr ใน R
คำแนะนำการฝึกหัด
มีการสร้าง Spark connection ไว้ให้แล้วในชื่อ spark_conn โดย Tibble ที่เชื่อมต่อกับชุดข้อมูลสำหรับ training และ testing ที่จัดเก็บใน Spark ได้ถูกกำหนดไว้ล่วงหน้าเป็น track_data_to_model_tbl และ track_data_to_predict_tbl ตามลำดับ และโมเดล gradient boosted trees ได้ถูกกำหนดไว้ล่วงหน้าเป็น gradient_boosted_trees_model
- กำหนดตัวแปร
predictedที่เก็บผลการทำนายของโมเดลสำหรับข้อมูล testing- เรียกใช้
ml_predict()โดยส่งโมเดลและข้อมูล testing เป็นอาร์กิวเมนต์ ฟังก์ชันนี้จะสร้างค่าทำนายสำหรับชุดข้อมูล testing และเพิ่มค่าเหล่านั้นเป็นคอลัมน์ใหม่ชื่อprediction - ใช้
pull()เพื่อดึงคอลัมน์นี้และกำหนดให้กับpredicted
- เรียกใช้
- กำหนดตัวแปร
responsesเพื่อเตรียมข้อมูลสำหรับเปรียบเทียบค่าที่ทำนายได้กับค่าจริง:- เลือกคอลัมน์ response ชื่อ
year - Collect ผลลัพธ์
- ใช้
mutate()เพื่อเพิ่มค่าทำนายที่ได้จากpredicted
- เลือกคอลัมน์ response ชื่อ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Training, testing sets & model are pre-defined
track_data_to_model_tbl
track_data_to_predict_tbl
gradient_boosted_trees_model
# Predict the responses for the testing data
predicted <- ___(
___,
___) %>% pull(prediction)
# Prepare the data for comparing predicted responses with actual responses
responses <- track_data_to_predict_tbl %>%
# Select the response column
___ %>%
# Collect the results
___ %>%
# Add in the predictions
mutate(___)