การแปลงค่า Input ก่อนสร้างโมเดล

Supervised Learning ใน R: การถดถอย

Nina Zumel and John Mount

Win-Vector LLC

เหตุใดจึงต้องแปลงตัวแปร Input

  • ความรู้เฉพาะด้าน/ตัวแปรสังเคราะห์
    • $Intelligence \sim \frac{mass.brain}{mass.body^{2/3}}$
Supervised Learning ใน R: การถดถอย

เหตุใดจึงต้องแปลงตัวแปร Input

  • ความรู้เฉพาะด้าน/ตัวแปรสังเคราะห์
    • $Intelligence \sim \frac{mass.brain}{mass.body^{2/3}}$
  • เหตุผลเชิงปฏิบัติ
    • Log transform เพื่อลด dynamic range
    • Log transform เพราะการเปลี่ยนแปลงที่มีนัยสำคัญของตัวแปรเป็นแบบคูณ
Supervised Learning ใน R: การถดถอย

เหตุใดจึงต้องแปลงตัวแปร Input

  • ความรู้เฉพาะด้าน/ตัวแปรสังเคราะห์
    • $Intelligence \sim \frac{mass.brain}{mass.body^{2/3}}$
  • เหตุผลเชิงปฏิบัติ
    • Log transform เพื่อลด dynamic range
    • Log transform เพราะการเปลี่ยนแปลงที่มีนัยสำคัญของตัวแปรเป็นแบบคูณ
    • $y$ มีความเป็นเส้นตรงโดยประมาณใน $f(x)$ มากกว่าใน $x$
Supervised Learning ใน R: การถดถอย

ตัวอย่าง: การพยากรณ์ความวิตกกังวล

Supervised Learning ใน R: การถดถอย

การแปลงตัวแปร hassles

Supervised Learning ใน R: การถดถอย

รูปแบบการ fit ที่เป็นไปได้

แบบไหนดีที่สุด?

  • anx ~ I(hassles^2)
  • anx ~ I(hassles^3)
  • anx ~ I(hassles^2) + I(hassles^3)
  • anx ~ exp(hassles)
  • ...

I(): ใช้นิพจน์ตามความหมายตรงตัว (ไม่ใช่เป็น interaction)

Supervised Learning ใน R: การถดถอย

เปรียบเทียบโมเดลต่าง ๆ

โมเดลเชิงเส้น กำลังสอง และกำลังสาม

mod_lin <- lm(anx ~ hassles, hassleframe)
summary(mod_lin)$r.squared
0.5334847
mod_quad <- lm(anx ~ I(hassles^2), hassleframe)
summary(mod_quad)$r.squared
0.6241029
mod_tritic <- lm(anx ~ I(hassles^3), hassleframe)
summary(mod_tritic)$r.squared
0.6474421
Supervised Learning ใน R: การถดถอย

เปรียบเทียบโมเดลต่าง ๆ

ใช้ cross-validation เพื่อประเมินโมเดล

โมเดล RMSE
เชิงเส้น ($hassles$) 7.69
กำลังสอง ($hassles^2$) 6.89
กำลังสาม ($hassles^3$) 6.70
Supervised Learning ใน R: การถดถอย

มาฝึกกันเถอะ!

Supervised Learning ใน R: การถดถอย

Preparing Video For Download...