머신러닝 활용 - 2회차

Data_Student·약 14시간 전
0

머신러닝

목록 보기
4/6

02. 회귀, 분류 모델링 심화

1. 의사결정나무와 랜덤 포레스트

1) 의사결정나무(Decision Tree, DT)

  • 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법

    • 명칭
      • 루트 노드(Root Node) : 의사결정나무의 시작점, 최초의 분할조건
      • 리프 노드(Leaf Node) : 루트 노드로부터 파생된 중간 혹은 최종 노드
      • 분류기준(criteria)
      • 불순도(impurity) ★
        • 불순도 측정 방법 중 하나인 지니 계수는 0과 1 사이 값으로 0이 완벽한 순도, 1은 완전한 불순도
        • 리프 노드로 갈수록 불순도가 작아지는 방향으로 나무가 자람
      • 샘플(sample) : 해당 노드의 샘플 개수(관측치)
      • 값(value) : Y변수에 대한 배열
      • 클래스(class) : 가장 많은 샘플을 차지하는 클래스를 표현
      • 특징
      • 장점
        • 쉽고 해석하기 용이
        • 다중분류와 회귀에 모두 적용 가능
        • 이상치에 견고하며, 데이터 스케일링이 불필요
      • 단점
        • 나무가 성장을 너무 많이하면 과대적합의 오류가 발생
        • 훈련 데이터에 민감하게 반응하여 작은 변화가 노이즈에도 나무의 구조가 크게 달라짐(불안정성)
      • python 라이브러리
        • sklearn.tree.DecisionTreeClassifier - 분류
        • sklearn.tree.DecisionTreeRegressor - 회귀

1) 랜덤 포레스트

  • 의사결정나무의 과적합과 불안정성에 대한 문제를 해결하기 위해 나무트리를 여러개 만들어 숲을 만드는 것

    • 배깅(Bagging)의 원리
      - 언제나 머신러닝은 데이터의 부족이 문제
      - 이를 해결하기 위해 Bootstrapping + Aggregating 방법론
      - Bootstrapping : 데이터를 복원 추출해서 유사하지만 다른 데이터 집단을 생성
      - Aggregating : 데이터의 예측, 분류 결과를 합치는 것
      - Ensemble(앙상블) : 여러 개의 모델을 만들어 결과를 합치는 것

    • Tree를 Forest로 만들기

      • 여러 개의 데이터 샘플에서 각자 의사결정트리를 만들어 다수결 법칙에 따라 결론 도출
      • 의사결정나무의 장점은 수용하고 단점을 보완하여 뛰어난 성능으로 지금도 자주 사용되는 알고리즘
      • 특징
      • 장점
        • Bagging 과정을 통해 과접합을 피할 수 있음
        • 이상치에 견고하며 데이터 스케일링이 불필요
        • 변수 중요도를 추출하여 모델 해석에 중요한 특징을 파악
      • 단점
        • 컴퓨터 리소스 비용 ↑
        • 앙상블 적용으로 해석의 어려움
      • python 라이브러리
        • sklearn.ensemble.RandomForestClassifier
        • sklearn.ensemble.RandomForestRegressor

2. 최근접 이웃 ( K-Nearest Neighbor(KNN) )

  • 주변 데이터를 보고 알고 싶은 데이터를 예측하는 방식

1) 하이퍼 파라미터의 개념

  • 파라미터(Parameter) : 머신러닝 모델이 학습 과정에서 추정하는 내부 변수이며 자동으로 결정되는 값
  • 하이퍼 파라미터(Hyper parameter) : 데이터 과학자가 기계 학습 모델 훈련을 관리하는데 사용하는 외부 구성변수이며 모델 학습과정이나 구조에 영향

2) 거리의 개념

  • 데이터간의 유사도를 측정할 때 자주 등장

    • 유클리드 거리 공식(피타고라스의 정리 활용)
    • 맨하튼 거리 공식 등
  • 거리 계산에 단위의 영향이 크기 때문에 표준화는 필수!

    • 특징
      • 장점
        • 이해하기 쉽고 직관적
        • 모집단의 가정이나 형태를 고려하지 않음
        • 회귀, 분류 모두 가능
      • 단점
        • 차원 수가 많을수록 계산량 ↑
        • 거리 기반의 알고리즘이기 때문에 피처(초기 컬럼)의 표준화가 필요
      • python 라이브러리
        • sklearn.neighbors.KNeighborsClassifier
        • sklearn.neighbors.KNeighborsRegressor

3. 부스팅 알고리즘

  • 여러 개의 약한 학습기를 순차적으로 학습하면서 잘못 예측한 데이터에 가중치를 부여하여 오류를 개선해나가는 학습 방식

    • Gradient Boosting Model
      • 특징
        • 가중치 업데이트를 경사하강법 방법을 통해 진행
      • python 라이브러리
        • sklearn.ensemble.GradientBoostingClassifier
        • sklearn.ensemble.GradientBoostingRegressor
    • XGBoost
      • 특징
        • 트리기반 앙상블 기법으로, 인기 많은 알고리즘
        • 병렬학습이 가능해 속도가 빠름
      • python 라이브러리
        • xgboost.XGBClassifier
        • xgboost.XGBRegressor
    • LightGBM
      • 특징
        • XGBoost와 함께 인기 많은 알고리즘
        • XGBoost보다 학습시간이 짧고 메모리 사용량이 작음
        • 작은 데이터 (10,000건 이하)의 경우 과적합 발생
      • python 라이브러리
        • lightgbm.LGBMClassifier
        • lightgbm.LGBMRegressor

0개의 댓글