결정 트리
결정 트리 모델은 모델을 설명하기 쉽다. = 스무고개와 같다.
노드는 트리의 핵심구성요소와 같다.
트리는 다음과 같은 내용을 가진다.
왼쪽이 yes 오른쪽이 no이다.
지니 불순도
지니 불순도는 노드에서 데이터를 분할할 기준을 정할 때 사용한다.
0은 순수한 노드이고 0.5가 나오면 최악의 지니 불순도이다.
만약 100개의 샘플이 있고 그 노드의 두 클래스 비율이 정확히 1/2라면 지니 불순도는 0.5로 최악이다.
1 - (0.5^2 + 0.5^2) = 0.5
원래 결정 트리 모델은 부모 노드와 자식 노드의 불순도의 차이가 가능한 크도록 트리를 성장시킨다.
Information Gain
부모 노드와 자식 노드의 불순도 차이
엔트로피
엔트로피도 지니 불순도와 동일하게 결정트리의 불순도를 구하는데 사용된다.
차이점은 수식에서 지니는 제곱을 사용하고 엔트로피는 로그를 사용한다.
Pruning
이른바 가지치기라고한다. 트리의 가지가 한도끝고없이 많아지면 모델의 정확도가 떨어진다. = 일반화가 안된다.
그리고 결정트리는 표준화 전처리 과정이 필요하지 않습니다.
특성 중요도
결정 트리에 사용된 특성이 불순도를 감소하는데 기여한 정도를 나타낸다. 결정 트리의 장점 중 하나이다.
확인문제
1. 2, 4
2. 4
3. max_depth = 3
05-2 교차 검증과 그리드 서치
Validation set
내가 가지고 있는 데이터가 한정적이라면 훈련세트에서 0.2정도 떼어내서 검증 세트로 활용하는 것입니다. 살짝 시각화 해보자면
훈련세트(검증세트), 테스트 세트 인 것이고, 훈련 0.8, 검증 0.2 로 보통 나눕니다.
Cross Validation
훈련과 검증 세트를 더욱 다양하게 더 많이 증강을 하는 느낌이라고 본다.
정확하게는 검증세트를 떼어 내어 평가하는 과정을 여러번 반복하는 과정입니다.
유명한건 K-Fold Cross Validation입니다.
K-1개의 훈련세트와 1개의 검증세트를 만들어 내고 학습하고 검증합니다. 이 과정을 K번 반복합니다.
하이퍼파라미터 튜닝
말이 어려워 보이지만 그냥 함수안에 파라미터를 바꿔가며 더 좋은 성능을 보여주도록 하는 행위이다.
그리드서치
하이퍼파라미터 탐색을 자동화해 주는 도구 입니다. 탐색할 매개변수를 나열하면 교차 검증을 수행하여 가장 좋은 매개변수 조합을 선택하고 이 매개변수 조합으로 최종 모델을 훈련합니다.
랜덤 서치
그리드 서치의 시간이 너무 오래걸린다 싶으면 랜덤서치를 사용해보는 것도 좋다.
연속된 매개변수 값을 탐색할 때 좋다. 탐색 값을 샘플링할 수 있는 확률 분포 객체를 전달합니다.
확인문제
1. 1
2. 4
3. 성능이 떨어진다! 대신 시간이 많이 빠르다 = 로컬 미니마를 빠르게 찾는다
05-3 트리의 앙상블
정형 데이터: 표, 그래프와 같이 정리되어있는 데이터
반정형 데이터: csv, JSON, XML
비정형 데이터: .avi, .wav, .JPG
n_jobs를 -1로 설정하면 병렬로 CPU의 모든 코어를 사용한다.
앙상블 학습
더 좋은 예측 결과를 만들기 위해 여러 개의 모델을 훈련하는 머신러닝 알고리즘이다.
랜덤 포레스트
대표적인 결정 트리 기반의 앙상블 학습 방법. 부트스트랩 샘플을 사용하여 랜덤하게 일부 특성을 선택해서 트리를 만드는 것이 특징이다.
부트스트랩 샘플
1000개 모집단 중에 100개씩 샘플을 뽑을 때 1개 뽑고 기록하고 다시 집어넣고 다시 1000개 중에 하나 뽑고 그런느낌이다
replace with replacement
엑스트라 트리
랜덤 포레스트와 비슷하지만 부트스트랩 샘플을 사용하지 않습니다. 대신 랜덤하게 노드를 분할해 과대적합을 방지시킨다.
그레이디언트 부스팅
그레이디언트 부스팅은 랜덤 포레스트나 엑스트라 트리와 달리 결정 트리를 연속적으로 추가하여 손실 함수를 최소화하는 양상별 방법입니다. 이런 이유로 훈련 속도가 조금 느리지만 더 좋은 성능을 기대할 수 있습니다. 그레이디언트 부스팅의 속도를 개선한 것이 히스토그램 기반 그레이디언트 부스팅이며, 안정적인 결과와 높은 성능으로 매우 인기가 높습니다.
확인문제
1. 4
2. 4
3. 1
실습 파일
'AI > AID' 카테고리의 다른 글
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 06-3, 07-1 (0) | 2024.11.12 |
---|---|
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 06 (0) | 2024.11.07 |
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 04 (5) | 2024.10.29 |
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 03 (7) | 2024.10.04 |
[혼공 머신] 혼자 공부하는 머신러닝 정리하기 - Chapter 02 (2) | 2024.10.04 |