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

LightGBM은 기계 학습 알고리즘 중 하나로, 특히 회귀 문제에 적용할 때 많이 사용됩니다. 회귀 문제에서는 예측된 값이 실제 값과 얼마나 정확하게 일치하는지를 평가해야 합니다. 이러한 평가를 위해 LightGBM에서는 다양한 평가 지표를 제공합니다.

이 글에서는 LightGBM 회귀 문제에서 사용할 수 있는 몇 가지 평가 지표를 소개하고, 이를 Python으로 어떻게 설정하는지 예시 코드를 제시하겠습니다.

1. 평가 지표 설정

1.1. 평균 절대 오차 (Mean Absolute Error, MAE)

평균 절대 오차(Mean Absolute Error, MAE)는 예측 값과 실제 값 사이의 절대 오차를 평균한 값입니다. 이 지표는 오차의 크기에 집중하는 경향이 있어 경우에 따라 유용한 지표일 수 있습니다.

1.2. 평균 제곱 오차 (Mean Squared Error, MSE)

평균 제곱 오차(Mean Squared Error, MSE)는 예측 값과 실제 값 사이의 제곱 오차를 평균한 값입니다. MSE는 MAE에 비해 오차의 크기에 민감합니다. 작을수록 모델의 예측이 더 정확하다는 의미입니다.

1.3. 평균 제곱근 오차 (Root Mean Squared Error, RMSE)

평균 제곱근 오차(Root Mean Squared Error, RMSE)는 MSE를 계산한 후 제곱근을 취한 값입니다. RMSE 역시 MSE와 비슷한 특성을 가지며, 모델의 예측이 더 정확할수록 값이 작아집니다.

2. 평가 지표 설정 예시 코드

아래 예시 코드는 LightGBM을 사용하여 회귀 문제를 해결하는 과정에서 평가 지표를 설정하는 방법을 보여줍니다. 코드는 Python으로 작성되었습니다.

import lightgbm as lgb
from sklearn.metrics import mean_absolute_error, mean_squared_error

# 데이터 로드
X_train, y_train = load_train_data()
X_valid, y_valid = load_validation_data()

# LightGBM 데이터셋 생성
train_data = lgb.Dataset(X_train, label=y_train)
valid_data = lgb.Dataset(X_valid, label=y_valid)

# 모델 학습
params = {
    'objective': 'regression',
    'metric': 'mae'  # 평가 지표 설정 (MAE)
}
model = lgb.train(params, train_data, valid_sets=[train_data, valid_data])

# 검증 데이터로 예측 수행
y_pred = model.predict(X_valid)

# 평가 지표 계산
mae = mean_absolute_error(y_valid, y_pred)
mse = mean_squared_error(y_valid, y_pred)
rmse = np.sqrt(mse)

print(f"MAE: {mae}")
print(f"MSE: {mse}")
print(f"RMSE: {rmse}")

위 코드에서는 LightGBM의 train() 함수를 호출할 때 metric 매개변수를 설정하여 평가 지표를 지정할 수 있습니다. 여기서는 MAE를 사용하였으며, 다른 평가 지표를 사용하고 싶다면 해당 평가 지표의 코드를 입력하면 됩니다. 이후 mean_absolute_error()mean_squared_error() 함수를 사용하여 실제 값과 예측 값 사이의 오차를 계산하고, RMSE를 계산하기 위해 MSE에 제곱근을 취해주었습니다.