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(____))