CatBoost은 범주형 데이터를 다루는데 특화된 그래디언트 부스팅 모델입니다. 범주형 특성에 대한 자동 처리, GPU 지원, 그리고 고성능을 제공합니다.
CatBoostClassifier 클래스는 iterations (부스팅 반복 횟수), learning_rate (학습률), depth (트리의 최대 깊이) 등의 매개변수를 설정하여 모델을 초기화합니다.
범주형 특성은 cat_features 매개변수로 지정하며, CatBoost은 자동으로 이러한 특성을 처리합니다.
from catboost import CatBoostClassifier
# 모델 생성
model = CatBoostClassifier(iterations=500, learning_rate=0.05, depth=10, cat_features=[0, 1, 2])
Pool은 CatBoost 모델에 사용되는 데이터를 로딩하고 저장하는 클래스입니다. 주로 학습 데이터를 CatBoost 모델에 제공할 때 사용됩니다.
data 매개변수에는 특성 데이터, label 매개변수에는 레이블이 전달됩니다. 또한 cat_features 매개변수를 사용하여 범주형 특성을 지정할 수 있습니다.
from catboost import Pool
# 데이터와 레이블로 Pool 객체 생성
train_data = Pool(data=X_train, label=y_train, cat_features=[0, 1, 2])
eval_metric 함수는 CatBoost 모델의 성능을 평가하기 위한 메트릭 함수를 제공합니다.
예를 들어, 'Logloss'는 로그 손실을 나타내며, 이는 모델의 예측이 실제 레이블과 얼마나 일치하는지를 측정합니다.
from catboost.utils import eval_metric
# 예시: Logloss를 사용한 평가
eval_metric(model, train_data, 'Logloss')