728x90

2023-10-31 39th Class

AutoML 머신러닝 모델 선정

#️⃣ AutoML 라이브러리인 Pycaret과 Autogluon 사용하여 모델 테스트

Model Accuracy AUC Recall Prec. F1 Kappa MCC
lightgbm Light Gradient Boosting Machine 0.9701 0.9926 0.8833 0.9277 0.9045 0.8868 0.9926
gbc Gradient Boosting Classifier 0.9643 0.9881 0.8333 0.938 0.8822 0.8612 0.9881
rf Random Forest Classifier 0.9577 0.9873 0.7999 0.9277 0.8588 0.8341 0.9873
ada AdaBoost Classifier 0.954 0.9829 0.8131 0.8923 0.8502 0.8231 0.9829
et Extra Trees Classifier 0.9372 0.9796 0.6603 0.9286 0.771 0.7359 0.9796
dt Decision Tree Classifier 0.931 0.8652 0.7683 0.7963 0.781 0.7402 0.8652
lr Logistic Regression 0.9015 0.9164 0.5286 0.7909 0.6327 0.5785 0.9164
lda Linear Discriminant Analysis 0.9 0.9187 0.5891 0.7375 0.6542 0.5966 0.9187
  • AutoML 라이브러리인 Pycaret과 Autogluon을 사용하여 베이스 모델로 사용할 모델을 탐색
  • 기본 데이터 셋 테스트로 성능이 우수한 모델중 ensemble 및 트리모델 계열 5가지를 선정 후 모델 학습을 진행하였음.

모델 성능 비교 Confusion matrix

#️⃣ 1차 모델 성능비교 : 하이퍼 파라미터 조정 전

  • 5가지 모델 선정 및 학습
    • DecisionTree, RandomForest, BaggingClassifier, AdaBoost, LightGBM
  • 모델의 Confusion Matrix 시각화
  • Accuray, Precision, Rcall, F1값을 도출

#️⃣ Confusion Matrix 의미

  • TP : 유지 고객, 프로모션 미대상

  • FN : 유지 고객, 프로모션 대상

  • FP : 이탈 고객, 프로모션 미대상

  • TN : 이탈 고객, 프로모션 대상

  • 머신러닝 모델은 Decision Tree, RandomForest, BaggingClassifier,AdaBoost, LightGBM 총 5가지를 선택해 비교해보았음.

  • 그중 LGBM의 성능이 가장 우수

성능 지표 기준 Recall

**

#️⃣ 성능 지표 의미

  • Accuray: 유지/이탈 고객 예측 비율

  • Precision: 유지 예측 고객의 유지 고객 비율

  • Recall: 유지 고객의 유지 예측 고객 비율

  • F1: Precision과 Recall의 조화 평균 성능 (종합적인 수치)

  • 팀에서 설정한 비즈니스 목표는 프로모션 낭비를 최소화하여 충성고객을 확보하는 것

  • FN 만큼 프로모션 비용이 낭비되므로,

  • FN 최소화를 위해 재현율(recall)을 가장 주요한 성능 지표로 선택함

모델 선택 LightGBM

#️⃣ LightGBM의 아이디어 1. 앙상블 학습 방식

Random Forest

  • 독립적인 결정 트리를 독립(병렬)적으로 학습
  • 각 트리는 부스트스트랩 샘플링과 랜덤특성 선택을 통해 다양성을 확보
    Gradient Boosting
  • 결정 트리를 순차적으로 학습
  • 이전 트리의 오류를 보완하여 새로운 모델을 반복적으로 학습

#️⃣ LightGBM의 아이디어 2. 오류보완의 방식

  • 가중치 부여 방식 : 오분류된 샘플에 높은 가중치를 부여하여 높은 가중치를 가진 샘플에 집중
    • Adaboost
  • 손실함수 방식 : 실제값과 예측값의 차이(손실)를 훈련데이터에 투입하고 경사하강법과 같은 최적화 기술을 이용하여 모델을 개선
  • Gradient Boosting Methods: XGBoost, LightGBM, Catboost

#️⃣ LightGBM의 아이디어 3. 트리 분할의 방식

  • GBM 계열 : ‘균형 트리 분할(level-wise)’ 방식을 사용
    • 트리의 깊이가 균형적
    • 각 노드 분할 고려하여 비효율적인 계산
  • LightGBM : 최대 정보획득(Information Gain) 가지는 노드를 중심으로 계속해서 분할하는 ‘리프 중심 트리 분할(leaf-wise)’ 방식을 사용
    • 과적합 최소화
    • 높은 예측 성능
    • 효율적인 계산

  • LightGBM은 앙상블 학습 방식으로 랜덤포레스트를 베이스로 이용
  • 그리고 학습진행은 손실함수 방식인 Gradient Boosting 기법으로 이전 트리의 오류를 보완하여 새로운 모델을 반복적으로 학습
  • LightGBM의 트리분할은 leaf-wise 방식을 사용하여 과적합을 최소화하고, 성능이 좋고, 효율적으로 계산

하이퍼파라미터 최적화

#️⃣ Pycaret

  • AutoML 중 Pycaret을 이용하여 hyperparameter 최적화
  • 모델성능 검증 및 최적의 파라미터 확인

#️⃣ Randomized Search

  • 무작위 샘플링 : 하이퍼파라미터 조합을 고려하지 않고 무작위로 조합
  • 확률 분포 : 각 하이퍼파라미터에 대해 가능한 값들을 지정된 확률 분포에서 무작위로 추출

#️⃣ 모델의 성능 개선

  • 성능 지표 Accuracy, Precision, Recall, F1 값 모두
    최적화 이전보다 개선되었음
    Accuracy :0.9210
    Precision :0.9399
    Recall :0.8975 
    F1 :0.9182

**

  • 하이퍼 파라미터 최적화는 1차로 Pycaret을 통해 진행하였음.
  • 그 후 Randomized Search로 추가 최적화를 한 결과 모델의 성능이 전반적으로 개선되었음.
반응형