본문 바로가기

트리 모형

그래디언트 부스팅의 간단한 파이썬 구현

728x90

Python에서 그래디언트 부스팅을 구현하는 가장 간단한 방법은,
사이킷런(scikit-learn) 라이브러리의 GradientBoostingClassifier 또는 GradientBoostingRegressor 클래스를 사용합니다.

 

이 글에서 분류 문제를 위한 간단한 그래디언트 부스팅 예제를 보여드리겠습니다.

사이킷런의 유방암 데이터셋을 사용하여 이진 분류 모델을 학습시키겠습니다.

먼저 필요한 라이브러리를 설치합니다. 사이킷런이 아직 설치되지 않았다면, 설치해 주세요:

!pip install scikit-learn

 

그런 다음, 아래의 코드를 따라하면서, 그래디언트 부스팅 모델을 학습시킬 수 있습니다.

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score

# 데이터 로드
data = load_breast_cancer()
X = data.data
y = data.target

# 훈련 세트와 테스트 세트 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 그래디언트 부스팅 분류기 초기화
gbc = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)

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

# 예측
predictions = gbc.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, predictions)
print(f"Test Accuracy: {accuracy * 100:.2f}%")

 

이 코드는 다음 단계를 따릅니다.

  1. 유방암 데이터셋을 로드합니다.
  2. 데이터를 훈련 세트와 테스트 세트로 분리합니다.
  3. GradientBoostingClassifier를 사용해 그래디언트 부스팅 모델을 초기화하고, 여기에는 트리의 개수(n_estimators), 학습률(learning_rate), 그리고 트리의 최대 깊이(max_depth) 등의 하이퍼파라미터를 설정할 수 있습니다.
  4. 모델을 훈련 세트에 학습시킵니다.
  5. 테스트 세트에 대한 예측을 수행합니다.
  6. 모델의 정확도를 평가합니다.