[파이썬] catboost 분류 문제에서의 평가 지표 설정

Catboost는 범주형 변수들을 적절하게 처리하고 과적합을 줄이는 효과적인 그래디언트 부스팅 기반의 머신러닝 알고리즘입니다. 이 알고리즘은 분류 문제에서 예측의 품질을 평가하기 위한 다양한 지표를 제공합니다.

Catboost에서 제공하는 평가 지표

Catboost는 다음과 같은 평가 지표를 제공합니다:

  1. Accuracy (정확도): 모델의 전체적인 분류 정확도를 의미합니다. 이는 모든 클래스에 대한 정확한 예측 비율을 측정합니다.

     from catboost import CatBoostClassifier
     from sklearn.metrics import accuracy_score
    
     model = CatBoostClassifier()
     model.fit(X_train, y_train)
     y_pred = model.predict(X_test)
     accuracy = accuracy_score(y_test, y_pred)
    
  2. Precision (정밀도): 양성으로 예측한 샘플 중에서 실제 양성인 샘플의 비율을 의미합니다. 이는 거짓 양성 비율을 줄이기 위해 사용됩니다.

     from catboost import CatBoostClassifier
     from sklearn.metrics import precision_score
    
     model = CatBoostClassifier()
     model.fit(X_train, y_train)
     y_pred = model.predict(X_test)
     precision = precision_score(y_test, y_pred)
    
  3. Recall (재현율): 실제 양성인 샘플 중에서 양성으로 예측한 샘플의 비율을 의미합니다. 이는 거짓 음성 비율을 줄이기 위해 사용됩니다.

     from catboost import CatBoostClassifier
     from sklearn.metrics import recall_score
    
     model = CatBoostClassifier()
     model.fit(X_train, y_train)
     y_pred = model.predict(X_test)
     recall = recall_score(y_test, y_pred)
    
  4. F1-score: 정밀도와 재현율을 조합한 지표로, 보다 균형있는 평가를 제공합니다. 이는 정밀도와 재현율의 조화평균입니다.

     from catboost import CatBoostClassifier
     from sklearn.metrics import f1_score
    
     model = CatBoostClassifier()
     model.fit(X_train, y_train)
     y_pred = model.predict(X_test)
     f1 = f1_score(y_test, y_pred)
    

평가 지표를 설정하여 모델 성능을 평가하기

Catboost의 모델을 평가하기 위해서는 eval_set 매개변수를 통해 검증 데이터셋을 전달하고, eval_metric 매개변수를 통해 평가 지표를 설정해야 합니다.

from catboost import CatBoostClassifier

model = CatBoostClassifier(eval_set=(X_val, y_val), eval_metric='Accuracy')
model.fit(X_train, y_train)

위의 예제 코드에서는 eval_metric 매개변수를 ‘Accuracy’로 설정하여 정확도를 평가 지표로 사용합니다. 다른 평가 지표를 사용하고 싶다면 해당 평가 지표를 문자열로 전달하면 됩니다.

CatBoost는 다양한 평가 지표를 제공하므로, 모델의 성능을 다각도로 평가할 수 있습니다. 이를 통해 최적의 모델을 선택하고, 다양한 하이퍼파라미터 튜닝을 진행할 수 있습니다.