Python에서 r-제곱을 계산하는 방법(예제 포함)


R2 라고도 불리는 R-제곱은 선형 회귀 모델 의 예측 변수로 설명할 수 있는 응답 변수 의 분산 비율입니다.

R 제곱 값은 0에서 1까지 다양할 수 있습니다.

  • 0은 반응 변수가 예측 변수로 전혀 설명될 수 없음을 나타냅니다.
  • 1은 예측변수에 의해 반응변수가 오류 없이 완벽하게 설명될 수 있음을 나타냅니다.

다음 예에서는 Python에서 회귀 모델에 대한 R 2를 계산하는 방법을 보여줍니다.

예: Python에서 R-제곱 계산

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6],
                   ' prep_exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]})

#view DataFrame
print (df)

    hours prep_exams score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
11 3 3 75
12 6 2 96

sklearnLinearRegression() 함수를 사용하여 회귀 모델을 맞추고 Score() 함수를 사용하여 모델의 R 제곱 값을 계산할 수 있습니다.

 from sklearn.linear_model import LinearRegression

#initiate linear regression model
model = LinearRegression()

#define predictor and response variables
x, y = df[[" hours ", " prep_exams "]], df. score

#fit regression model
model. fit (x,y)

#calculate R-squared of regression model
r_squared = model. score (x,y)

#view R-squared value
print (r_squared)

0.7175541714105901

모델의 R 제곱은 0.7176 으로 나타났습니다.

이는 시험 점수 변동의 71.76%가 공부 시간과 연습 시험 횟수로 설명될 수 있음을 의미합니다.

원하는 경우 이 R-제곱 값을 다른 예측 변수 세트를 사용하는 다른 회귀 모델과 비교할 수 있습니다.

일반적으로 R-제곱 값이 높은 모델이 선호되는 이유는 모델의 예측 변수 집합이 응답 변수의 변동을 잘 설명할 수 있다는 의미이기 때문입니다.

관련 항목: 좋은 R 제곱 값이란 무엇입니까?

추가 리소스

다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Python에서 단순 선형 회귀를 수행하는 방법
Python에서 다중 선형 회귀를 수행하는 방법
Python에서 회귀 모델의 AIC를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다