회귀 모델 평가하기
회귀 모델은 연속적인 수치 값을 예측하는 머신러닝 모델로, 성능을 평가할 때 자주 사용하는 지표는 다음과 같습니다.
평균제곱오차(MSE)
: 예측값과 실제값 사이의 제곱 오차를 평균낸 값 (0에 가까울수록 좋음)결정계수(R²)
: 모델이 목표 변수의 분산을 얼마나 잘 설명하는지 나타내는 지표 (1.0에 가까울수록 좋음)
평균제곱오차 수식
평균제곱오차(MSE)는 예측값과 실제값 사이의 제곱 오차를 평균낸 값입니다.
결정계수 수식
결정계수(R²)는 모델이 목표 변수의 분산을 얼마나 잘 설명하는지 나타내는 지표입니다.
회귀 예시: 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}")
R²
의 가능한 값은 다음과 같습니다.
1.0
: 완벽 한 예측0
: 평균 예측(단순 평균)과 차이가 없음- 음수: 평균 예측보다도 못함
핵심 요약
- 출력이 범주형이면 분류 지표를, 연속형이면 회귀 지표를 사용하세요.
- 회귀 모델은 평균제곱오차(MSE)와 결정계수(R²)를 사용해 평가합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!