본문 바로가기

소프트웨어/패턴인식

의사결정트리 / 랜덤 포레스트 / 부스팅 / 배깅 (Decision Tree / Forest) part.3

2018/02/24 - [딥러닝,패턴인식/패턴인식] - 의사결정트리 / 랜덤 포레스트 / 부스팅 / 배깅 (Decision Tree / Forest) part.1

2018/02/25 - [딥러닝,패턴인식/패턴인식] - 의사결정트리 / 랜덤 포레스트 / 부스팅 / 배깅 (Decision Tree / Forest) part.2

 

Part.2에 이어서 랜덤포레스트(Random Forest)에 대해서 설명하도록 하겠다.

 

랜덤포레스트의 간단한 설명은 아래와 같다. 앞에 설명을 모두 이해했다면 그림만 보더라도 충분히 이해가 될 것이다.

 

부트스트랩을 이용하여 샘플링을 하고 그 샘플을 가지고 의사결정트리(Decision Tree)를 만든다. 그 이후에 배깅(Bagging)과 부스팅(Boosting)방법을 이용하여 랜덤포레스트(Random Forest)가 만들어 진다. 나무가 모여서 숲이 만들어 지는 방법이다. 나무를 모을때 사용하는 방법이 배깅과 부스팅이라고 생각하면 된다. 기본적으로 배깅과 부스팅은 Ensemble(앙상블)이라는 방법중에 하나이며, 패턴인식 분야 에서 더 정확성 높은 모델을 사용하기 위해서 사용된다.

 

우리는 왜 의사결정 트리보다 랜덤포레스트가 좋다고 말하는 것일까?

아래 그림을 보면 이해 할 수 있을 것이다. 다음과 같이 분류가 필요할 경우 랜덤포레스트는 더 좋은 정확도로 구별 할 수 있게 되는 것이다.

 

 

위에서 언급했듯이 랜덤포레스트를 만들때 배깅(Bagging)이라는 방법을 이용해서 만들어 보면 아래와 같은 기본 구조가 생성된다.

 

 

Majority Voting(다수결)을 이용하여 부트스트랩 샘플링을 통해 생성된 여러개의 의사결정 트리에서 가장 많이 나온 결과를 이용하여 새로운 랜덤 포레스트가 만들어지는 것이다. 즉 nonlinear boundary가 생성된다는 것을 알 수 있을 것이다.

 

더 자세한 부분은 Leo Breiman 논문을 참고하시길 바란다.

 

 

 

 

추가적으로 앙상블 방법에 대해 간단하게 정리된 그림파일이다.

출처는 네이버에서 찾아보다가 가지고 온 파일이다. 찾아본다면 더 자세한 내용이 나올 것이다.

 

 

 

마지막으로 간단한 의사결정트리와 랜덤포레스트에 관해 참고한 사이트이다.  

http://mypetprojects.blogspot.com/2010/05/decision-tree-with-weka-part-i.html 

http://www.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/mlbook/ch3.pdf

 

추가적으로 피피티가 필요하신분은 댓글로 달아주시면 보내드릴께요.

또한 잘못된 점이 있으면 알려주세요. 감사합니다.