모형 성능 평가

Python의 statsmodels로 배우는 중급 회귀

Maarten Van den Broeck

Content Developer at DataCamp

모형 성능 지표

  • 결정계수(R-squared): 회귀직선이 관측값에 얼마나 잘 맞는지.

    • 클수록 좋습니다.
  • 잔차 표준오차(RSE): 잔차의 일반적 크기.

    • 작을수록 좋습니다.
Python의 statsmodels로 배우는 중급 회귀

결정계수 구하기

print(mdl_mass_vs_length.rsquared)
0.8225689502644215
print(mdl_mass_vs_species.rsquared)
0.25814887709499157
print(mdl_mass_vs_both.rsquared)
0.9200433561156649
Python의 statsmodels로 배우는 중급 회귀

수정 결정계수

  • 설명변수가 많을수록 $R^2$는 커집니다.
  • 너무 많으면 과적합이 발생합니다.
  • 수정 결정계수는 설명변수 증가에 패널티를 줍니다.
  • $\bar{R ^ 2} = 1 - (1 - R ^ 2) \frac{n_{obs} - 1}{n_{obs} - n_{var} - 1}$
  • $R^2$가 작거나, $n_{var}$가 $n_{obs}$에 비해 크면 패널티가 큽니다.
  • statsmodels에서는 rsquared_adj 속성에 있습니다.
Python의 statsmodels로 배우는 중급 회귀

수정 결정계수 구하기

print("rsq_length: ", mdl_mass_vs_length.rsquared)
print("rsq_adj_length: ", mdl_mass_vs_length.rsquared_adj)
rsq_length:  0.8225689502644215
rsq_adj_length:  0.8211607673300121
print("rsq_species: ", mdl_mass_vs_species.rsquared)
print("rsq_adj_species: ", mdl_mass_vs_species.rsquared_adj)
rsq_species:  0.25814887709499157
rsq_adj_species:  0.24020086605696722
print("rsq_both: ", mdl_mass_vs_both.rsquared
print("rsq_adj_both: ", mdl_mass_vs_both.rsquared_adj)
rsq_both:  0.9200433561156649
rsq_adj_both:  0.9174431400543857
Python의 statsmodels로 배우는 중급 회귀

잔차 표준오차 구하기

rse_length = np.sqrt(mdl_mass_vs_length.mse_resid)
print("rse_length: ", rse_length)
rse_length:  152.12092835414788
rse_species = np.sqrt(mdl_mass_vs_species.mse_resid)
print("rse_species: ", rse_species)
rse_species:  313.5501156682592
rse_both = np.sqrt(mdl_mass_vs_both.mse_resid)
print("rse_both: ", rse_both)
rse_both:  103.35563303966488
Python의 statsmodels로 배우는 중급 회귀

연습해 봅시다!

Python의 statsmodels로 배우는 중급 회귀

Preparing Video For Download...