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

Random Forest,랜덤포레스트_Day27

by khalidpark 2021. 2. 5.

Step 1 : Create a "Bootstrapped" dataset.

 

주어진 데이터셋과 동일한 데이터셋을 만든다

내용은 랜덤하게 채운다

(포인트! 동일한 데이터셋이 중복되는걸 허락한다)

 

 

 

Step 2 : Create a decision tree using the boostrapped dataset,

but only use a random subset of variables(or columns) at each step.

 

 

원래 결정트리에서는 모든 열을 반영하지만,

랜덤포레스트에서는 랜덤하게 일부만 열 선택 가능

(나중에 얼마나, 어떤 열을 선택해야 하는지에 대해서도 배움)

(첫번째 노드의 선택을 랜덤하게 했듯이, 두번째 노드도 첫번째를 제외한 항목중 랜덤하게 선택해서 넣는다)

 

 

한번더 정리하면

랜덤트리를 만들때

1) 랜덤 데이터셋을 활용하였음

2) 랜덤하게 특성을 선택하여 트리를 만들었음

3) 1+2 방법으로 여러 트리를 만들다

 

 


이렇게 만든 랜덤포레스트 (랜덤하게 만든 결정트리들의 집합체) 를 어떻게 사용할까?

 

테스트데이터를 첫번째 트리에 넣고 그 결과를 기록

그다음 두번째 트리에 넣고 기록

...

 

모든 트리에 테스트해본다음의 결과를 기반으로 결론을 도출

(

 

 

위처럼 결정을 내리기 위한 집합을 만들어 확인하는 작업을 "Bagging" 이라 한다

 

그럼 최종적으로 어떤 결정트리가 가장 최적인지 어떻게 판단할것인가?

처음에 우리는 랜덤 데이터셋을 만들때 , 중복을 허락했다

즉 오리지널 데이터에서 사용하지 않은 데이터셋이 존재하는데 (Out of Bag Dataset)

 

 

 

Out of Bag Dataset으로 랜덤트리에 넣어 나온 결과값을 서로 비교

(즉 Out of Bag Dataset이 검증데이터셋의 역할을 하는것같다)

 

 

 

 

모든 랜덤트리에 넣어서 맞음과 틀림의 비율을 "Out of Bag Error" 라 한다

 


더 나아가 랜덤포레스트를 처음에 만들때

Boostrapped dataset에서 2개의 특성을 임의지정한 뒤 랜덤포레스트를 만들었지만,

이 숫자도 변경하여 최종모델과 비교, 확률을 파악할수있다

 

 

 

 

 

출처 : youtu.be/J4Wdy0Wc_xQ

 

728x90

댓글