R-squared ($R^2$)

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

Nina Zumel and John Mount

Win-Vector LLC

$R^2$ คืออะไร?

ตัวชี้วัดว่าโมเดลพอดีหรืออธิบายข้อมูลได้ดีแค่ไหน

  • ค่าอยู่ระหว่าง 0-1
    • ใกล้ 1: โมเดลพอดีกับข้อมูลดี
    • ใกล้ 0: ไม่ดีกว่าการเดาค่าเฉลี่ย
Supervised Learning ใน R: การถดถอย

การคำนวณ $R^2$

$R^2$ คือ ความแปรปรวนที่โมเดลอธิบายได้

$$ R^2 = 1 - \frac{RSS}{SS_{Tot}} $$

โดยที่

  • $RSS = \sum{(y - prediction)^2}$
    • ผลรวมกำลังสองของค่าคลาดเคลื่อน (ความแปรปรวนจากโมเดล)
  • $SS_{Tot} = \sum{(y - \overline{y})^2}$
    • ผลรวมกำลังสองทั้งหมด (ความแปรปรวนของข้อมูล)
Supervised Learning ใน R: การถดถอย

คำนวณ $R^2$ ของโมเดลราคาบ้าน: RSS

  • คำนวณค่าคลาดเคลื่อน
err <- houseprices$prediction - houseprices$price
  • ยกกำลังสองแล้วหาผลรวม
rss <- sum(err^2)
  • price: คอลัมน์ราคาขายจริง (หน่วย: พัน)
  • pred: คอลัมน์ราคาขายที่พยากรณ์ไว้ (หน่วย: พัน)
  • $RSS \approx$ 136138
Supervised Learning ใน R: การถดถอย

คำนวณ $R^2$ ของโมเดลราคาบ้าน: $SS_{Tot}$

  • หาส่วนต่างของราคากับราคาเฉลี่ย
toterr <- houseprices$price - mean(houseprices$price)
  • ยกกำลังสองแล้วหาผลรวม
sstot <- sum(toterr^2)
  • $RSS \approx$ 136138
  • $SS_{Tot} \approx$ 713615
Supervised Learning ใน R: การถดถอย

คำนวณ $R^2$ ของโมเดลราคาบ้าน

(r_squared <- 1 - (rss/sstot) )
0.8092278
  • $RSS \approx$ 136138
  • $SS_{Tot} \approx$ 713615
  • $R^2 \approx$ 0.809
Supervised Learning ใน R: การถดถอย

อ่านค่า $R^2$ จากโมเดล lm()

# From summary()
summary(hmodel)
...
Residual standard error: 60.66 on 37 degrees of freedom
Multiple R-squared:  0.8092, Adjusted R-squared:  0.7989 
F-statistic: 78.47 on 2 and 37 DF,  p-value: 4.893e-14
summary(hmodel)$r.squared
0.8092278
# From glance()
glance(hmodel)$r.squared
0.8092278
Supervised Learning ใน R: การถดถอย

ความสัมพันธ์และ $R^2$

rho <- cor(houseprices$prediction, houseprices$price)
0.8995709
rho^2
0.8092278
  • $\rho$ = cor(prediction, price) = 0.8995709
  • $\rho^2$ = 0.8092278 = $R^2$
Supervised Learning ใน R: การถดถอย

ความสัมพันธ์และ $R^2$

  • ใช้ได้กับโมเดลที่ minimize squared error:
    • Linear regression
    • GAM regression
    • อัลกอริทึมที่ใช้ต้นไม้และ minimize squared error
  • ใช้ได้กับข้อมูล training เท่านั้น; ไม่ใช้ กับข้อมูลใหม่
Supervised Learning ใน R: การถดถอย

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

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

Preparing Video For Download...