Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

HJunS

[혼공족] 혼자 공부하는 머신러닝 + 딥러닝 4주차 Ch05 본문

혼공단

[혼공족] 혼자 공부하는 머신러닝 + 딥러닝 4주차 Ch05

HJunS 2024. 1. 26. 20:33

05 트리 알고리즘

05-1 결정트리

  • 결정트리: 예/아니오 질문을 이어나가며 정답을 찾는 학습 알고리즘
  • 불순도: 결정트리가 최적의 질문을 찾는 기준(지니 불순도, 엔트로피 불순도)
  • 정보 이득: 부모 노드와 자식노드의 불순도 차이. 정보 이득 최대화되도록 학습
  • 가지치기: 과대적합 방지위해서 성장 제한
  • 특성 중요도: 특성이 불순도를 감소하는데 기여한 정도

데이터 준비

결정트리

과대적합됨

plot_tree로 트리 구조 확인

 

가지치기

깊이를 3으로 제한하여 과대적합을 막는다.

당도는 음수가 될 수 없다.

결정트리는 특성값의 스케일이 영향을 미치지 않는다.

표준화 전처리 과정이 필요없다.

 

 

05-2 교차 검증과 그리드 서치

  • 검증 세트: 하이퍼파라미터 튜닝 떄 테스트 세트를 사용하지 않기 위해 훈련 세트에서 떼어 낸 데이터 세트
  • 교차 검증: 훈련 세트를 여러 폴드로 나눈 다음, 돌아가면서 평가
  • 그리드 서치: 하이퍼파라미터 탐색을 자동화
  • 랜덤 서치: 연속된 매개변수 탐색할 때 유용. 확률 분포 객체로 샘플링하여 교차 검증

검증 세트

모델이 과대적합인지 과소적합인지 판단하기 위해서 테스트 세트를 사용하지 않고 훈련 세트를 나눈다.

데이터 준비

 

교차 검증

  • 검증 세트가 적을 때 유용하다.
  • 훈련 세트를 n 등분하여 n-1 개의 훈련 세트를 훈련하고 남은 하나의 세트로 검증한다.
  • 각 세트를 여러 번 학습한다.
  • 검증 세트로 모델을 평가하고 평균을 구한다.

  •  StartifiedKFold(): 타깃 클래스를 골고루 나눈다.
  • 훈련세트를 섞은 후 10-폴드 교차 검증 수행한다.

 

하이퍼 파라미터 튜닝

사람이 지정하는 파라미터를 최적의 조합으로 찾아준다.

  • 그리드 서치

 

05-3 트리의 앙상블

  • 앙상블: 여러 개의 모델을 훈련하는 알고리즘
  • 랜덤포레스트: 결정 트리 기반 앙상블, 부트스트랩 샘플을 사용하여 랜덤하게 일부 특성 선택
  • 엑스트라 트리: 랜덤포레스트와 유사하지만 부트스트랩 샘플을 사용하지 않음
  • 그레디언트 부스팅: 결정 트리를 연속적으로 추가하여 손실 함수를 최소화

랜덤 포레스트

결정 트리를 랜덤하게 만들어 숲을 만든다.

부트스트랩 샘플로 데이터를 랜덤하게 만든다.

부트스트랩은 중복 포함해 훈련 세트와 같은 크기의 샘플을 만든다.

 

데이터 준비

모델

OOB 점수 측정

 

 

엑스트라 트리

부트스트랩 사용하지 않음

 

그레디언트 부스팅

깊이가 얕은 결정트리를 사용하여 이전 트리의 오차를 보완

 

히스토그램 기반 그레디언트 부스팅

XGBoost

 

LightGBM