[파이썬] lightgbm 내장 평가 지표들

LightGBM은 가벼우면서도 빠른 그래디언트 부스팅 프레임워크입니다. LightGBM은 내장된 다양한 평가 지표를 제공하여 모델의 성능을 평가할 수 있습니다. 이 블로그 포스트에서는 LightGBM의 내장 평가 지표들에 대해 알아보겠습니다.

1. 평가 지표

LightGBM은 다양한 평가 지표를 지원하며, 이중에서 가장 널리 사용되는 지표들은 다음과 같습니다:

2. 평가 지표 사용하기

LightGBM에서는 모델 학습 시 eval_metric 매개 변수를 통해 사용할 평가 지표를 설정할 수 있습니다. 다음은 LightGBM 모델에서 binary_logloss 평가 지표를 사용하는 예제 코드입니다:

import lightgbm as lgb

# 데이터셋 로드
train_data = lgb.Dataset(X_train, label=y_train)
valid_data = lgb.Dataset(X_valid, label=y_valid)

# LightGBM 모델 학습
params = {'objective': 'binary'}
model = lgb.train(params, train_data, valid_sets=[train_data, valid_data],
                  num_boost_round=100, early_stopping_rounds=10, eval_metric='binary_logloss')

위 코드에서 eval_metric='binary_logloss'로 설정하여 이진 분류 문제에서 binary_logloss 평가 지표를 사용합니다.

3. 추가 평가 지표

또한 LightGBM은 사용자 정의 평가 지표를 생성할 수 있습니다. 사용자 정의 평가 지표는 모델의 성능을 더 정확하게 평가하거나 독특한 지표를 만들고자 할 때 유용합니다. 이를 위해 eval_function을 정의하여 사용자 정의 평가 지표를 계산할 수 있습니다. 다음은 사용자 정의 평가 지표를 생성하는 예제 코드입니다:

import lightgbm as lgb
from sklearn.metrics import mean_squared_error

# 커스텀 평가 함수 정의
def custom_metric(y_true, y_pred):
    return 'custom_metric', mean_squared_error(y_true, y_pred)**0.5, False

# 데이터셋 로드
train_data = lgb.Dataset(X_train, label=y_train)
valid_data = lgb.Dataset(X_valid, label=y_valid)

# LightGBM 모델 학습
params = {'objective': 'regression', 'metric': 'custom'}
model = lgb.train(params, train_data, valid_sets=[train_data, valid_data],
                  num_boost_round=100, early_stopping_rounds=10, feval=custom_metric)

위 코드에서는 custom_metric 함수를 정의하여 mean squared error를 계산하는 사용자 정의 평가 지표를 생성합니다. 학습 시 params 딕셔너리의 metric 속성에 'custom'을 지정하고, feval 매개 변수를 사용하여 사용자 정의 평가 지표를 할당합니다.

결론

LightGBM은 다양한 내장 평가 지표를 제공하여 모델의 성능을 평가할 수 있습니다. 이 블로그 포스트에서는 LightGBM의 내장 평가 지표들을 설명했고, 평가 지표를 설정하는 방법과 사용자 정의 평가 지표를 생성하는 방법을 알아보았습니다. 이러한 평가 지표들을 활용하여 모델의 성능을 효과적으로 평가할 수 있습니다.