의사결정트리, 앙상블
- 의사결정 트리를 이해하기
- 앙상블의 여러가지 방법을 이해하기
- 랜덤 포레스트에 대한 설명
의사결정트리
데이터를 분석해서 이들 사이에 존재하는 패턴을 예측 가능한 규칙들의 조합을 트리를 뒤집어 놓은 모양으로 나타낸 것
- 운동경기가 열렸다면 Play = 1, 그렇지 않으면 Play = 0 으로 분류
- 날씨가 맑고, 습도가 70이하 인날 경기가 열렸다.
- 비가 오고 바람이 부는 날에는 경기가 열리지 않았다.
특징
- 중간의 Terminal node 가 3개라는 것은 전체 데이터가 3개의 부분집합으로 나누어진 셈이다
- 분류 와 회귀 두가지 모두 가능하다
의사결정 트리 분류
root node 가 A -> B, C로 분할, B가 -> C, D로 분할 * 이점을 고려하여 C,D,E 3개로 분할이 되는 특성을 가지고 있음. 불순도/ 불확실성
분류나무 구분 뒤에 순도가 증가, 불순도, 불확실성 이 최대한 감소 하는 방향으로 학습을 진행한다. //이를 정보획득 이라고 함.
불확실성
- ex) 동전이 그림과 숫자중 그림이 나올 확률 50% 불확실성이 높다
- 반면에 동전이 두면 모두 그림일 경우 어떻게든 그림면이 나온다 이는 불확실성이 낮다.
이 불확실성을 숫자로 표현하는것이 엔트로피
엔트로피
불확실성을 숫자로 표한한 것!
- 높은 엔트로피는 불확실성이 높다.
- 낮은 엔트로피는 불확실성이 낮다.
예시
- 군인인지 아닌지 에서의 엔트로피가 더낮다 불확실성이 낮음.
https://www.youtube.com/watch?v=r3iRRQ2ViQM&t=68s
앙상블
앙상블은 모델 결합 이라고 한다.
- 여러 모델을 학습시켜 결합하는 방식 으로 문제 처리
Weak learner 이란? 개별로 학습된 모델
앙상블의 장점
- 성능을 분산시켜 과적합(over fitting)에 감소효과가 잇음
- 개별 모델 성능이 잘 안나올때 앙상블 학습을 사용하면 성능 향상
앙상블 취합방법
미리 정해져 있는 weak learner들을 취합해서 사용~ ex)Voting, bagging and pasting, random forest
- Voting 다수결/투표 기반 방법 Ex) 예를 들어서 3개의 모델로 classification 을 할때 이미지를 넣었을때 Random forest에서는 고양이로, SVM모델 에서는 개로, etc..고양이로 결과를 도출 이때는 다수결로 고양이가 많이 나왔으므로 최종 Output을 고양이로 설정.
- Bagging and Pasting
무작위로 훈련시킨 데이터 셋을 잘게 나눈 후 나누어진 훈련 데이터 셋을 여러개의 모델에 할당시켜 학습
- Bagging : 전체 훈련 데이터에서 여러 번 중복을 허용한 복원 추출을 한다.
- Pasting : 중복을 허용하지 않고 데이터 셋을 나누는 것.
- Bagging <--> Pasting 반대를 의미함*OOB (out of bag)Bagging 은 복원추출을 진행하여 37% 정도는 뽑히지 않아 데이터를 테스트 셋으로 사용 가능하다.
- Boosting(부스팅) 부스팅이란? (Weak learner)약한 모델을 결합하여 강한 모델을 만드는 것 //기존의 모델을 개선하는 방향
- 아다 부스트(AdaBoost) Weaker model을 순차적을 적용해 나가는 과정에서 잘 분류된 샘플의 가중치는 낮추고 잘못 분류된 샘플의 가중치를 상대적으로 높여주면서 분포 변화를 시킴 https://medium.com/@deepvalidation/%EA%B5%B0%EC%A4%91%EC%9D%80-%EB%98%91%EB%98%91%ED%95%98%EB%8B%A42-adaboost-ba0122500034
- 그레디언트 부스트 weaker model을 순차적으로 적용해 나가는 과정에서 잘못 분류된 샘플의 error을 optimization하는 방식
- Random forest★
여러 개의 결정 트리를 생성하여 각각의 트리에 나오는 결과를 취합하는 방법. (Bagging & Random patch & Decision Tree방식등을 사용)
'공부 > AI School 인공지능 여름캠프' 카테고리의 다른 글
딥러닝 텐서플로우 소개 및 기본 사용법 - [AI School] (0) | 2021.05.03 |
---|---|
딥러닝 시작, 신경망 기초 - [AI School] (0) | 2021.05.03 |
머신러닝 분류 Classification - [AI School] (0) | 2021.05.03 |
머신러닝 회귀(Regression) 정리 - [AI School] (0) | 2021.05.03 |
파이썬 사이킷 런(sklearn) 이용 - [AI School] (0) | 2021.05.03 |