เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Gradient boosted trees: การแสดงผลด้วยกราฟ

เมื่อได้ผลการพยากรณ์จากโมเดลแล้ว คำถามต่อมาคือ "ผลลัพธ์เหล่านี้แม่นยำแค่ไหน?" มีกราฟหลายประเภทที่ช่วยวินิจฉัยความแม่นยำของการพยากรณ์ได้ ในที่นี้จะดูกราฟที่ใช้บ่อย 2 แบบ ได้แก่ scatter plot ของค่าพยากรณ์เทียบกับค่าจริง เพื่อดูว่าทั้งสองสอดคล้องกันเพียงใด และ density plot ของ residuals ซึ่งควรมีการกระจายใกล้เคียงกับการแจกแจงปกติ กราฟที่ได้จะมีลักษณะดังนี้

Scatterplot of predicted response vs. actual response and density plot of distribution of residuals side by side.

ในแบบฝึกหัดนี้ จะฝึกคำนวณ residuals ด้วยตัวเอง (ค่าพยากรณ์ลบด้วยค่าจริง) จากผลการพยากรณ์ของโมเดล

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

แนะนำ Spark ด้วย sparklyr ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

มีการกำหนด tibble ในเครื่องชื่อ responses ซึ่งประกอบด้วยปีที่พยากรณ์และปีจริงไว้แล้ว

  • วาด scatter plot ของค่าพยากรณ์เทียบกับค่าจริง
    • เรียกใช้ ggplot()
    • อาร์กิวเมนต์แรกคือชุดข้อมูล responses
    • อาร์กิวเมนต์ที่สองควรระบุชื่อคอลัมน์สำหรับแกน x และแกน y (actual และ predicted ตามลำดับ) โดยไม่ต้องใส่เครื่องหมายคำพูด และครอบด้วย aes()
    • เพิ่มจุดข้อมูลโดยเรียก geom_point()
    • ทำให้จุดข้อมูลโปร่งแสงบางส่วนโดยตั้งค่า alpha = 0.1
    • เพิ่มเส้นอ้างอิงโดยเรียก geom_abline() พร้อมกำหนด intercept = 0 และ slope = 1
  • สร้าง tibble ของ residuals โดยตั้งชื่อว่า residuals
    • เรียก transmute() บน responses
    • ตั้งชื่อคอลัมน์ใหม่ว่า residual
    • residual ควรเท่ากับค่าพยากรณ์ลบด้วยค่าจริง
  • วาด density plot ของ residuals
    • ส่งต่อ tibble ที่ได้จาก transmute ไปยัง ggplot() ด้วย pipe
    • ggplot() ต้องการ aesthetic เดียว คือ residual ครอบด้วย aes()
    • เพิ่มเส้นโค้งความหนาแน่นความน่าจะเป็นโดยเรียก geom_density()
    • เพิ่มเส้นอ้างอิงแนวตั้งผ่านศูนย์โดยเรียก geom_vline() พร้อมกำหนด xintercept = 0

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# responses has been pre-defined
responses

# Draw a scatterplot of predicted vs. actual
ggplot(___, aes(___, ___)) +
  # Add the points
  ___ +
  # Add a line at actual = predicted
  ___

residuals <- responses %>%
  # Transmute response data to residuals
  ___

# Draw a density plot of residuals
ggplot(___, aes(___)) +
    # Add a density curve
    ___ +
    # Add a vertical line through zero
    ___
แก้ไขและรันโค้ด