데이터과학 삼학년

히스토그램 기반 그래디언트 부스팅 트리(Histogram Gradient Boosting Tree) 본문

Machine Learning

히스토그램 기반 그래디언트 부스팅 트리(Histogram Gradient Boosting Tree)

Dan-k 2023. 5. 25. 19:35
반응형

히스토그램 기반 그래디언트 부스팅 트리(Histogram Gradient Boosting Tree)

- 히스토그램 기반 그래디언트 부스팅 트리는 앙상블 학습 방법 중 하나로, 여러 개의 결정 트리를 조합하여 예측 모델을 구축하는 알고리즘 - 트리 기반의 모델인 그래디언트 부스팅 트리(Gradient Boosting Tree)를 기반으로 함

- 특히 데이터를 히스토그램으로 변환하여 학습 및 예측에 활용하는 점이 특징

 

동작 원리 

1. 데이터의 특성을 이해하기 위해 먼저 히스토그램으로 변환 -> 이를 위해 입력 데이터를 여러 개의 구간(bin)으로 나누고, 각 구간에 속하는 데이터 포인트의 개수를 기록

2. 초기에는 단 하나의 트리로 시작하며, 이 트리는 모든 데이터를 하나의 잎(leaf)에 할당

3. 그 다음으로, 그래디언트 부스팅의 핵심 원리인 그래디언트 부스팅 기준(gradient boosting criterion)에 따라 새로운 트리를 추가 -> 히스토그램을 이용하여 데이터의 분포를 고려하며, 각 구간의 예측값을 조정해 나가는 방식으로 트리를 구성

4. 트리의 구성이 완료되면, 새로운 트리에 의한 예측값과 실제값 사이의 오차(residual)를 계산 -> 이 오차를 이용하여 다음 트리를 학습시키는 과정을 반복

5. 모든 트리를 학습한 후, 각 트리의 예측값을 결합하여 최종 예측값을 얻음

>> 오차 학습 트리가 연속적으로 생기는 구조

 

장점

- 효율적인 계산: 히스토그램을 이용하여 데이터를 변환하므로, 원래 데이터의 크기보다 훨씬 작은 메모리를 요구 ->  따라서, 대용량 데이터셋에 대해서도 빠른 속도로 학습과 예측을 수행

- 상대적으로 낮은 과적합 경향: 히스토그램 기반의 변환은 일종의 데이터 요약 방법이기 때문에, 과적합을 완화하는 효과가 있음

- 범주형 변수 처리: 히스토그램 기반 그래디언트 부스팅 트리는 범주형 변수를 처리하는 데에도 우수한 성능을 보임

 

코드 예시

from sklearn.experimental import enable_hist_gradient_boosting
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 데이터셋 로드 및 전처리
# X: 입력 특성, y: 타겟 변수
# 예시 데이터셋은 X와 y가 이미 정의되어 있다고 가정합니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 히스토그램 기반 그래디언트 부스팅 분류기 객체 생성
model = HistGradientBoostingClassifier()

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

# 테스트 데이터에 대한 예측
y_pred = model.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

 

 

728x90
반응형
LIST
Comments