본문 바로가기
AI월드/⚙️AI BOOTCAMP_Section 2

AdaBoost,아다부스트,decision tree,random tree_Day33(2)

by khalidpark 2021. 2. 16.

랜덤포레스트와 다르게 'AdaBoost'는 오직 1개의 노드와 2개의 leaves만 갖는다

stump 의 정의

 

AdaBoost의 3가지 특징

1) 하나하나 개별로 보면 AdaBoost는 결정트리나 랜덤포레스트에 비해 약한 러닝일수있다. (한가지 조건만 표현할수있기 때문에)

2) 각각의 Stumps에 가중치를 줄 수 있다.

3) 앞의 stump는 뒤의 stump에 영향을 준다 (앞이 에러가 있다면 뒤도 영향을 받는다)

 

AdaBoost를 만드는 방법

1) 우선 Sample Weight 특성을 만들고, 아래 이미지와 같이 모두 동일한 값을 적용한다

(Sample Weight는 가중치의 역할을 하는 듯 하다)

2) 어떤 특성을 가장 두어야 할까?
(Sample Weight 값이 지금은 모두 같기 때문에 어떤 특성을 지정해도 상관없다)

 

decision tree를 만들었던 동일한 방법으로 각각의 특성값과 라벨값을 비교한다

각각 지니계수를 계산한 결과 , 'weight' 특성이 가장 낮은 지니계수를 갖는걸로 확인함

 

Amount of Say 구하기

Weight 의 Total error는 1/8입니다 8개중 1개만 틀렸기 때문에) => Amount of say : 0.97

Chesk pain 의 Total error는 3/8입니다 .=> Amount of say : 0.42

 

계산한 Amount of Say를 가지고 , 새로운 Sample Weight를 설정합니다

 

종합하면 이전 Stump에서 잘못 분류된 sample의 경우 sample weight를 증가시켜주고,

이전 Stump에서 잘 분류된 sample의 경우 sample weight를 감소시켜준다.

그래야 다음 Stump에서 이전 Stump에서 잘못 분류한 것에 더 집중을 해서 올바른 분류를 해주기 때문입니다

정규화까지 진행한 New Sample Weight 값

 

새로운 샘플 weight를 가지고 새로운 테이블은 만듭니다.

여러차례 진행하면 아래와 같은 Amount of say가 나온다.

Total amount of say 가 좌측 2.7로 우측 1.23보다 크다

따라서 최종적으로 Heart Disease가 있다고 분류할수있다

 

 

 

출처 : youtu.be/LsK-xG1cLYA

 

728x90

댓글