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}%")
이 코드는 다음 단계를 따릅니다.
- 유방암 데이터셋을 로드합니다.
- 데이터를 훈련 세트와 테스트 세트로 분리합니다.
GradientBoostingClassifier
를 사용해 그래디언트 부스팅 모델을 초기화하고, 여기에는 트리의 개수(n_estimators
), 학습률(learning_rate
), 그리고 트리의 최대 깊이(max_depth
) 등의 하이퍼파라미터를 설정할 수 있습니다.- 모델을 훈련 세트에 학습시킵니다.
- 테스트 세트에 대한 예측을 수행합니다.
- 모델의 정확도를 평가합니다.
'트리 모형' 카테고리의 다른 글
XGBoost란? (0) | 2024.02.15 |
---|---|
그래디언트 부스팅의 최적화 과정 뜯어보기 (0) | 2024.02.12 |
그래디언트 부스팅이란? (1) | 2024.02.12 |
의사결정나무 기준 코드 구현 (0) | 2024.02.11 |
의사 결정 나무의 기준 선택 : 정보 이득(Information Gain), 지니 불순도(Gini Impurity), 엔트로피(Entropy) (0) | 2024.02.11 |