[파이썬] lightgbm에서의 하이퍼파라미터 튜닝

LightGBM은 기계 학습 알고리즘 중 하나로, 빠른 속도와 높은 정확도를 가지고 있습니다. 하이퍼파라미터 튜닝은 LightGBM을 최적으로 활용하기 위해 중요한 단계입니다. 이 블로그 포스트에서는 Python을 사용하여 LightGBM의 하이퍼파라미터를 튜닝하는 방법을 알아보겠습니다.

1. 데이터 불러오기 및 전처리

필요한 패키지를 가져온 후, LightGBM이 인식할 수 있는 형식으로 데이터를 불러옵니다. 이후 데이터를 전처리하고 학습 및 테스트 데이터로 분할합니다.

import lightgbm as lgb
import pandas as pd
from sklearn.model_selection import train_test_split

# 데이터 불러오기
data = pd.read_csv('data.csv')

# 종속 변수와 독립 변수 분리
X = data.drop('target', axis=1)
y = data['target']

# 학습 및 테스트 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2. 하이퍼파라미터 그리드 생성하기

하이퍼파라미터 튜닝을 위해 GridSearchCV나 RandomizedSearchCV 등의 방법을 사용할 수 있습니다. 이 예시에서는 GridSearchCV를 사용하여 하이퍼파라미터 그리드를 생성하고, 튜닝할 파라미터를 명시합니다.

from sklearn.model_selection import GridSearchCV

# LightGBM 모델 초기화
model = lgb.LGBMClassifier()

# 튜닝할 파라미터 그리드 생성
param_grid = {
    'num_leaves': [20, 30, 40],
    'max_depth': [5, 10, 15],
    'learning_rate': [0.1, 0.01, 0.001]
}

# GridSearchCV 초기화
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3, scoring='accuracy', verbose=1)

# 모델 학습
grid_search.fit(X_train, y_train)

3. 최적의 하이퍼파라미터 확인하기

GridSearchCV를 통해 최적의 하이퍼파라미터를 확인할 수 있습니다. 최적의 하이퍼파라미터는 best_params_ 속성을 통해 알 수 있으며, 이를 사용하여 모델을 초기화하고 학습시킬 수 있습니다.

# 최적의 하이퍼파라미터 확인
best_params = grid_search.best_params_
print("Best Hyperparameters:", best_params)

# 최적의 하이퍼파라미터를 사용하여 모델 초기화 및 학습
model = lgb.LGBMClassifier(**best_params)
model.fit(X_train, y_train)

4. 평가하기

학습된 모델을 평가하기 위해 테스트 데이터를 사용할 수 있습니다. predict 메서드를 사용하여 예측값을 구하고, 이를 실제값과 비교하여 평가할 수 있습니다.

# 모델 예측
y_pred = model.predict(X_test)

# 평가
accuracy = (y_pred == y_test).mean()
print("Accuracy:", accuracy)

이제 LightGBM의 하이퍼파라미터를 튜닝하는 방법에 대해 알게 되었습니다. 이를 통해 모델의 성능을 향상시킬 수 있습니다. 감사합니다!