[파이썬] xgboost 회귀 문제의 평가 지표 설정

xgboost는 강력한 머신러닝 알고리즘으로, 다양한 문제에 사용될 수 있습니다. 이 중에서 회귀 문제로 사용될 때, 올바른 평가 지표를 설정하는 것은 매우 중요합니다. 회귀 문제의 목적은 실제값과 예측값 사이의 오차를 최소화하는 것이기 때문에, 예측 모델의 성능을 평가하기 위해서는 이러한 오차를 적절히 측정하는 평가 지표가 필요합니다.

xgboost에서 회귀 문제의 평가 지표로 가장 흔히 사용되는 지표는 Mean Squared Error (MSE)입니다. MSE는 예측값과 실제값 사이의 제곱 오차를 평균한 값으로, 예측 모델의 오차를 측정하는 대표적인 지표입니다. MSE는 예측 오차의 크기를 고려하기 때문에 회귀 문제의 성능을 판단하는 데 유용합니다.

xgboost에서 MSE를 평가 지표로 사용하기 위해서는 eval_metric 매개변수를 사용하여 설정할 수 있습니다. 아래는 xgboost에서 회귀 문제에 MSE를 평가 지표로 설정하는 예제 코드입니다.

import xgboost as xgb
import numpy as np
from sklearn.metrics import mean_squared_error

# 데이터셋 준비
X_train = np.array([[1, 2], [3, 4], [5, 6]])
y_train = np.array([1, 2, 3])
X_test = np.array([[7, 8], [9, 10]])
y_test = np.array([4, 5])

# DMatrix 생성
dtrain = xgb.DMatrix(data=X_train, label=y_train)
dtest = xgb.DMatrix(data=X_test, label=y_test)

# 모델 훈련
params = {'objective': 'reg:squarederror'}  # 손실 함수를 MSE로 설정
model = xgb.train(params, dtrain)

# 예측
y_pred = model.predict(dtest)

# MSE 계산
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

위 코드에서는 xgboost의 train 함수를 사용하여 회귀 모델을 훈련시키고, predict 함수를 사용하여 테스트 데이터에 대한 예측을 수행합니다. 그리고 먼저 sklearn의 mean_squared_error 함수를 사용하여 예측 값과 실제 값 사이의 평균 제곱 오차를 계산합니다. 최종적으로 계산된 MSE 값을 출력합니다.

MSE 외에도 다른 회귀 평가 지표로는 Mean Absolute Error (MAE), Root Mean Squared Error (RMSE) 등이 있습니다. 이러한 평가 지표들도 eval_metric 매개변수를 사용하여 설정할 수 있습니다. 상황에 맞게 알맞은 평가 지표를 선택하여 모델의 성능을 평가할 수 있도록 합니다.