본문으로 건너뛰기
실습하기

회귀 모델 평가하기

회귀 모델은 연속적인 수치 값을 예측하는 머신러닝 모델로, 성능을 평가할 때 자주 사용하는 지표는 다음과 같습니다.

  • 평균제곱오차(MSE): 예측값과 실제값 사이의 제곱 오차를 평균낸 값 (0에 가까울수록 좋음)
  • 결정계수(R²): 모델이 목표 변수의 분산을 얼마나 잘 설명하는지 나타내는 지표 (1.0에 가까울수록 좋음)

평균제곱오차 수식

평균제곱오차(MSE)는 예측값과 실제값 사이의 제곱 오차를 평균낸 값입니다.

MSE=1ni=1n(yiyi^)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2

결정계수 수식

결정계수(R²)는 모델이 목표 변수의 분산을 얼마나 잘 설명하는지 나타내는 지표입니다.

R2=1MSEVar(y)R² = 1 - \frac{MSE}{Var(y)}

회귀 예시: R² 점수

다음 예시는 회귀 모델을 R² 점수로 평가하는 방법을 보여줍니다.

R² 점수 예시
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 합성 회귀 데이터
import numpy as np
rng = np.random.RandomState(0)
X_reg = 2 * rng.rand(50, 1)
y_reg = 4 + 3 * X_reg.ravel() + rng.randn(50)

# 학습/테스트 분할
X_train, X_test, y_train, y_test = train_test_split(X_reg, y_reg, test_size=0.2, random_state=42)

# 학습
reg = LinearRegression()
reg.fit(X_train, y_train)

# 예측
y_pred = reg.predict(X_test)

# 평가
r2 = r2_score(y_test, y_pred)
print(f"R² 점수: {r2:.3f}")

의 가능한 값은 다음과 같습니다.

  • 1.0: 완벽한 예측
  • 0: 평균 예측(단순 평균)과 차이가 없음
  • 음수: 평균 예측보다도 못함

핵심 요약

  • 출력이 범주형이면 분류 지표를, 연속형이면 회귀 지표를 사용하세요.
  • 회귀 모델은 평균제곱오차(MSE)와 결정계수(R²)를 사용해 평가합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!