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

R-Squared

ก่อนหน้านี้เราได้ศึกษาตัวชี้วัดความดีของโมเดลอีกตัวหนึ่งที่เรียกว่า R-squared ซึ่งแสดงในรูปอัตราส่วนระหว่าง RSS กับ VAR เมื่อคูณทั้งเศษและส่วนด้วย 1/n จะเห็นว่าค่านี้เทียบเท่ากับอัตราส่วนของความแปรปรวนของค่าคงเหลือ หารด้วยความแปรปรวนของแนวโน้มเชิงเส้นในข้อมูลที่เรากำลังสร้างโมเดล ซึ่งสามารถตีความได้ว่าเป็นสัดส่วนของความแปรปรวนในข้อมูลที่โมเดล "อธิบาย" ได้ เปรียบเทียบกับการกระจายตัวหรือความแปรปรวนของค่าคงเหลือ (หลังจากตัดแนวโน้มเชิงเส้นออกแล้ว)

ในแบบฝึกหัดนี้ได้โหลดข้อมูล x_data, y_data และค่าที่โมเดลพยากรณ์ไว้ y_model สำหรับโมเดลที่พอดีที่สุดให้แล้ว เป้าหมายคือคำนวณค่า R-squared เพื่อวัดว่าโมเดลเชิงเส้นนี้อธิบายความแปรปรวนในข้อมูลได้มากเพียงใด

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

Introduction to Linear Modeling in Python

ดูคอร์ส

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

  • คำนวณ residuals โดยลบ y_data ออกจาก y_model และคำนวณ deviations โดยลบ y_data ออกจากค่าเฉลี่ยที่ได้จาก np.mean() ของ y_data
  • คำนวณความแปรปรวนของ residuals และความแปรปรวนของ deviations โดยใช้ np.mean() และ np.square() กับแต่ละค่า
  • คำนวณ r_squared จาก 1 ลบด้วยอัตราส่วน var_residuals / var_deviations แล้วแสดงผลลัพธ์

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

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

# Compute the residuals and the deviations
residuals = ____ - y_data
deviations = np.____(____) - y_data

# Compute the variance of the residuals and deviations
var_residuals = np.____(np.____(____))
var_deviations = np.____(np.____(____))

# Compute r_squared as 1 - the ratio of RSS/Variance
r_squared = 1 - (____ / ____)
print('R-squared is {:0.2f}'.format(____))
แก้ไขและรันโค้ด