[파이썬] lightgbm 회귀 문제에서의 `lightgbm` 사용

LightGBM은 Microsoft에서 개발한 고성능 그래디언트 부스팅 프레임워크로서, 회귀 문제에 특히 효과적입니다. LightGBM은 큰 규모의 데이터셋과 빠른 학습 속도를 처리하는 데에 특화되어 있습니다. 본 블로그 포스트에서는 Python에서 LightGBM을 활용하여 회귀 문제를 해결하는 방법을 살펴보겠습니다.

LightGBM 설치

먼저, LightGBM을 설치해야 합니다. 아래의 명령을 터미널 혹은 콘솔에서 실행하여 설치할 수 있습니다.

pip install lightgbm

데이터 준비

LightGBM을 사용하기 위해서는 회귀 문제에 맞는 데이터를 준비해야 합니다. 일반적으로 입력 변수와 출력 변수로 구성된 특성 행렬과 대상 벡터를 사용합니다. 이 예제에서는 X_train, y_train, X_test 변수가 주어진다고 가정하겠습니다.

LightGBM 모델 구축

LightGBM을 사용하여 회귀 문제를 해결하기 위해서는 다음 단계들을 따라야 합니다.

1. 데이터 세트 생성

LightGBM에서 사용할 데이터 세트를 생성합니다. 이를 위해 lgb.Dataset을 사용합니다. 아래의 코드는 X_train, y_train 데이터를 입력으로 받아 LightGBM 데이터 세트를 생성하는 예시입니다.

import lightgbm as lgb

train_data = lgb.Dataset(X_train, label=y_train)

2. 모델 초기화

LightGBM 모델 객체를 초기화합니다. 모델 초기화에 필요한 하이퍼파라미터를 설정할 수 있습니다. 하이퍼파라미터의 선택 및 튜닝은 성능과 학습 속도에 큰 영향을 미칠 수 있으므로 주의해야 합니다.

params = {
    'task': 'train',
    'boosting_type': 'gbdt',
    'objective': 'regression',
    'metric': {'l2', 'l1'},
    'num_leaves': 31,
    'learning_rate': 0.05,
    'feature_fraction': 0.9
}

model = lgb.train(params, train_data, num_boost_round=100)

3. 모델 학습

모델 객체를 사용하여 데이터를 학습시킵니다. train 메서드를 호출하고 학습 데이터 세트를 전달합니다.

model.train(train_data)

4. 예측

학습된 모델을 사용하여 새로운 데이터에 대한 예측을 수행할 수 있습니다. predict 메서드를 호출하고 예측할 데이터를 전달합니다.

y_pred = model.predict(X_test)

모델 성능 평가

마지막으로, 학습된 모델의 성능을 평가해야 합니다. 회귀 문제에서는 평균 제곱 오차(Mean Squared Error, MSE)나 평균 절대 오차(Mean Absolute Error, MAE)를 주로 사용합니다.

from sklearn.metrics import mean_squared_error, mean_absolute_error

mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)

print("MSE:", mse)
print("MAE:", mae)

이제 LightGBM을 사용하여 회귀 문제를 해결하는 방법을 알았습니다. LightGBM은 빠른 학습 속도와 높은 예측 성능을 제공하는 강력한 도구입니다. 이를 활용하여 다양한 회귀 문제에 대한 솔루션을 개발해보세요!