카테고리 없음

24년 7월 31일 하계모각코 활동

gy8879 2024. 8. 13. 16:31

3회차 학습내용 -> ai 프로그래밍&데이터분석 공부, 알고리즘 특강 복습

현 진도율 243/395 - 이번주 내로 300 찍기 목표!!!

알고리즘 특강 - 다중 반복문 공부중이다

그리고 AI 해커톤(phase2) 진행 중인데, AI 다양한 모델에 대해 학습하였다.

특히나 모델 성능을 높이는 게 주 목적이라서 앙상블 기법에 대해 공부할 필요성을 느꼈고

그 과정에서 bagging 과 boosting 에 대한 학습을 했다.

bagging - randomforest

boosting - xgboost, catboost ..

CatBoost

CatBoost는 Yandex에서 개발한 강력한 그라디언트 부스팅(Gradient Boosting) 알고리즘입니다. CatBoost는 "Categorical Boosting"의 줄임말로, 이름에서 알 수 있듯이, 범주형 데이터를 다루는 데 특히 강점을 가지고 있습니다. 주요 특징과 장점은 다음과 같습니다:

    1. 범주형 데이터 처리:
      • CatBoost는 범주형 데이터를 특별히 처리하는 고유의 알고리즘을 사용합니다. 범주형 데이터를 처리하기 위해 별도의 인코딩(예: 원-핫 인코딩)을 하지 않아도 됩니다. CatBoost는 이러한 데이터를 직접 처리하여 효율적이고 정확한 모델을 구축할 수 있습니다.
    2. 고속 학습:
      • CatBoost는 고도로 최적화된 알고리즘을 통해 학습 속도가 빠릅니다. 또한, CPU와 GPU를 모두 지원하여 큰 데이터셋에서도 효율적으로 작동합니다.
    3. 과적합 방지:
      • CatBoost는 overfitting을 방지하기 위한 다양한 기법을 내장하고 있습니다. 예를 들어, Leaf-wise tree growth 및 Ordered Boosting은 과적합을 줄이는 데 효과적입니다.
    4. 고급 하이퍼파라미터 조정:
      • CatBoost는 다양한 하이퍼파라미터를 지원하여 모델의 성능을 최적화할 수 있습니다. 기본 설정도 매우 잘 되어 있어, 초보자도 쉽게 사용할 수 있습니다.
    5. 쉬운 사용:
      • CatBoost는 Python, R, 그리고 C++ 라이브러리로 제공되며, 사용자 친화적인 API를 가지고 있습니다. 이로 인해 사용하기 매우 쉽습니다. - 근데 여러 버전에서 계속 업데이트가 된건지 파이썬 버전마다+다른 모델과 호환성이 아쉽더라

BalancedRandomForest

Balanced Random Forest는 불균형한 데이터셋에서 사용하기 위해 개발된 Random Forest의 변형 알고리즘입니다. Random Forest는 여러 개의 결정 트리를 생성하고, 그들의 예측을 앙상블하여 최종 예측을 도출하는 기법입니다. Balanced Random Forest는 이러한 Random Forest의 변형으로, 각 트리를 학습할 때 불균형한 클래스 분포를 고려하여 클래스의 균형을 맞춥니다.

  1. 불균형한 데이터 처리:
    • Balanced Random Forest는 각 트리를 학습할 때, 소수 클래스의 샘플을 과샘플링하거나 다수 클래스의 샘플을 언더샘플링하여 학습 데이터의 균형을 맞춥니다. 이 과정은 각 트리의 학습이 클래스의 불균형에 영향을 받지 않도록 하여, 전체적인 모델의 성능을 향상시킵니다.
  2. Bootstrap 샘플링:
    • Balanced Random Forest는 표준 Random Forest처럼, 각 트리를 학습할 때 원본 데이터에서 부트스트랩 샘플링(bootstrap sampling)을 사용합니다. 단, Balanced Random Forest에서는 이 샘플링 과정에서 클래스의 균형을 맞추기 위한 추가 작업이 수행됩니다.
  3. 다양한 하이퍼파라미터:
    • Balanced Random Forest는 일반 Random Forest의 모든 하이퍼파라미터를 사용할 수 있으며, 추가적으로 클래스의 균형을 조절하는 sampling_strategy, replacement, bootstrap 등의 하이퍼파라미터를 설정할 수 있습니다.
  4. 과적합 방지:
    • Balanced Random Forest는 여러 트리의 예측을 앙상블하여 최종 예측을 도출하기 때문에, 일반적으로 과적합이 잘 일어나지 않습니다. 하지만 매우 깊은 트리나 너무 많은 트리를 사용할 경우 과적합이 발생할 수 있습니다.
  5. 적용 분야:
    • Balanced Random Forest는 주로 불균형한 데이터셋에서 좋은 성능을 보입니다. 예를 들어, 사기 탐지, 질병 진단, 희귀 이벤트 예측 등에서 많이 사용됩니다.

이 두 알고리즘은 각각의 특성에 따라 특정 문제에 잘 맞는 알고리즘입니다. CatBoost는 범주형 데이터나 일반적인 머신러닝 문제에서 강력한 성능을 발휘하고, Balanced Random Forest는 불균형한 데이터셋에서 균형 잡힌 예측을 수행하는 데 뛰어납니다.