[파이썬] lightgbm 최적의 피처 선택 방법

피처 선택(feature selection)은 머신 러닝 프로젝트에서 중요한 단계입니다. 피처 선택은 모델의 성능을 향상시키고, 오버피팅을 방지하며, 모델 학습에 필요한 시간과 리소스를 줄일 수 있는 방법입니다. 이번 블로그 포스트에서는 LightGBM을 사용하여 최적의 피처를 선택하는 방법에 대해 알아보겠습니다.

LightGBM 개요

LightGBM은 Microsoft에서 개발한 Gradient Boosting 프레임워크입니다. LightGBM은 대용량 데이터셋에서 빠르게 학습할 수 있는 속도와 높은 성능을 제공합니다. 피처 선택에 있어 LightGBM은 중요한 역할을 수행할 수 있습니다.

피처 선택 방법

LightGBM을 사용하여 피처 선택을 수행하는 방법은 다음과 같습니다.

1. 피처 중요도 계산

먼저, LightGBM 모델을 학습시키고 각 피처의 중요도를 계산합니다. LightGBM은 feature_importances_ 속성을 제공하여 각 피처의 중요도를 확인할 수 있습니다.

import lightgbm as lgb

# 데이터셋 로드
X, y = load_dataset()

# LightGBM 모델 학습
model = lgb.LGBMClassifier()
model.fit(X, y)

# 피처 중요도 확인
feature_importances = model.feature_importances_

2. 중요도 기준으로 피처 선택

계산된 피처 중요도를 기준으로 상위 n개의 피처를 선택합니다. 선택된 피처로 구성된 새로운 데이터셋을 만들어 모델을 다시 학습시킬 수 있습니다.

# 중요도 기준으로 상위 n개의 피처 선택
selected_features = feature_importances.argsort()[-n:]

# 선택된 피처로 구성된 데이터셋 생성
X_selected = X[:, selected_features]

# 모델 다시 학습
model.fit(X_selected, y)

3. 교차 검증을 통한 피처 선택 최적화

피처 선택의 성능을 최적화하려면 교차 검증(cross-validation)을 통해 선택된 피처의 성능을 평가해야 합니다. 교차 검증을 사용하여 모델의 일반화 성능을 추정하고, 다양한 피처 선택 기법을 비교할 수 있습니다.

from sklearn.model_selection import cross_val_score

# 선택된 피처로 구성된 데이터셋 생성
X_selected = X[:, selected_features]

# LightGBM 모델 교차 검증
cv_scores = cross_val_score(model, X_selected, y, cv=5)

요약

LightGBM을 활용하여 피처 선택을 수행하는 방법에 대해 알아보았습니다. 피처 선택은 모델의 성능을 향상시키고, 오버피팅을 방지하며, 모델 학습에 필요한 시간과 리소스를 줄일 수 있는 중요한 단계입니다. 피처 선택을 통해 모델의 성능을 개선할 수 있도록 실제 프로젝트에 적용해보시기 바랍니다.

LightGBM 공식 문서: https://lightgbm.readthedocs.io/