Python을 사용한 머신 러닝의 R2 score 및 RMSE score 이해하기
머신 러닝에서는 모델의 성능을 평가하는 데 도움이 되는 메트릭을 확보하는 것이 중요합니다. 이를 위해 널리 사용되는 두 가지 메트릭은 R2 score와 RMSE score입니다. 이 글에서는 이러한 메트릭이 무엇인지, 어떻게 계산되는지, 코드 예제를 통해 Python에서 구현하는 방법을 살펴보겠습니다.
R2 score는 무엇일까요?
결정 계수라고도 하는 R2 score는 회귀 모델이 데이터에 얼마나 잘 맞는지 평가하는 데 사용되는 메트릭입니다. 이는 모델의 독립 변수에 의해 설명되는 종속 변수의 분산 비율을 측정합니다. R2 score의 범위는 0에서 1이며, 1은 완벽하게 맞는다는 것을 나타냅니다.
RMSE score는 무엇일까요?
RMSE score 또는 평균제곱오차는 회귀 모델의 정확도를 평가하는 데 사용되는 지표입니다. 예측된 값과 실제 값 사이의 평균 거리를 측정합니다. RMSE score의 범위는 0에서 무한대까지이며, 0은 완벽하게 맞음을 나타냅니다.
Python에서 R2 score와 RMSE score를 계산하는 방법
Python은 R2 score와 RMSE score를 쉽게 계산할 수 있는 여러 라이브러리를 제공합니다. 여기서는 이러한 메트릭을 계산하는 방법을 보여드리기 위해 scikit-learn 라이브러리를 사용하겠습니다.
먼저 필요한 라이브러리를 가져옵니다.
import numpy as np
from sklearn.metrics import r2_score, mean_squared_error
다음으로 데이터 집합을 로드하고 학습 및 테스트 집합으로 분할합니다.
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)
이제 학습 데이터에 대해 선형 회귀 모델을 학습하겠습니다.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
R2 score와 RMSE score를 계산하기 위해 테스트 데이터에 대한 예측을 수행하고 이를 실제 값과 비교합니다.
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
마지막으로 R2 score와 RMSE score를 출력해 보겠습니다.
print(f'R2 Score: {r2:.2f}')
print(f'RMSE Score: {rmse:.2f}')
R2 score는 0에서 1 사이이며 점수가 높을수록 더 잘 맞음을 나타내고, RMSE score는 대상 변수와 동일한 단위로 표시되며 점수가 낮을수록 정확도가 높음을 나타냅니다.
R2 score와 RMSE score는 머신 러닝에서 회귀 모델의 성능을 평가하는 데 사용되는 두 가지 중요한 지표입니다. R2 score는 모델의 독립 변수로 설명되는 종속 변수의 분산 비율을 측정하고, RMSE score는 예측된 값과 실제 값 사이의 평균 거리를 측정합니다. Python은 머신 러닝 프로젝트에서 이러한 메트릭을 쉽게 계산할 수 있는 scikit-learn을 비롯한 여러 라이브러리를 제공합니다.