티스토리 뷰

반응형

Random Forest 알고리즘



출처 : https://medium.com/@williamkoehrsen/random-forest-simple-explanation-377895a60d2d


Random Forest 는 굉장히 중요한 !!! 알고리즘입니다. 


먼저 Random Forest 알고리즘Decision Tree의 분류보다 정확도를 개선시키기 위해, 여러개의 나무를 생성하여 각각 나무의 예측을 총 조합하여 결론을 내리는 구조입니다.


현업에서도 현재까지 가장 많이 사용하고 있고, 분류 분석에서 이 알고리즘만 사용해도 될 정도로 쉽고, 성능이 매우 우수한 알고리즘이기 때문이죠 !!!



Random Forest 특징

 - 서로 모두 다른 트리 구조로 구성

     : 서로 다른 트리들이 각각의 의사결정을 내리고, 그 의사결정의 결론을 종합적으로 판단

     1) 각 트리마다 랜덤하게 데이터를 샘플링(복원추출 허용)

         * Random Forest 내부적으로 랜덤 샘플링을 수행하여 각 트리마다 훈련시키는 데이터가 다르게 적용 -> 모두 다른 모델 생성

     2) 각 트리의 노드 결정 시 설명변수의 후보 수(mtry)를 지정

         * mtry값이 설명변수의 개수와 같을 시 모든 설명변수를 각 노드 결정 시 고려

            => 이미 설명변수의 중요도는 정해져있으므로 각 트리마다 비슷한 구조 생성 

            ex) 설명변수의 수 = 10, mtry = 10 일 경우, 여러 노드가 다 비슷한 구조로 생성되므로 Decision Tree와 비슷한 결과가 도출

         * mtry값이 1일 경우 랜덤하게 선택된 설명변수를 각 노드마다 고정 

             => 중요도가 낮은 설명 변수들이 루트 노드로 선택될 경우, 각 트리가 복잡하게 구성될 확률이 높아짐


 - 트리의 개수(ntree)가 많을 수록 정확도는 개선되지만 elbow point(기울기가 급변하는 지점)가 존재

     : elbow point 지점 이상 개수의 트리까지는 생성할 필요가 없음 (불필요한 트리 생성으로 인한 알고리즘 성능 저하)


 - 분류(단순하지만 평가의 통계적 접근이 없고, 모델 내부를 볼 수 없음 -> 해석 불가)가 주 목적이지만 회귀 분석이 가능하게 제작

     : 회귀 모델(주 목적은 인과관계 파악)이 굉장히 어려운 모델이기 때문에 회귀 분석을 위해 사용되기도 함(random forest regression)

           * Y가 연속형일 경우, 결과로 각 트리의 결과값 평균 -> 오로지 예측만 가능(관계 파악 불가)

           * Y가 범주형일 경우, 결과로 각 트리의 다중투표에 의한 다수결 의견 (random forest classifier)


 - 알고리즘 자체적으로 병렬처리가 가능하게 해주는 옵션 보유


 - 다수의 의견을 통합(과반수)해서 만드는 알고리즘이므로 속도가 늦음 

    -> 속도 개선을 위한 시스템 튜닝이 중요 


  - 모델의 일반화를 위해 매개변수 튜닝(조정)이 필요 




Random Forest 용어

 - 임의화 

   : 임의성에 의해 서로 조금씩 다른 특성을 갖는 트리들로 구성

   

   1) 배깅 

   : 데이터를 여러 번의 복원 샘플링을 통해 모델링한 후 결과를 결합하여 최종 모델을 생성 -> 기존 방식보다 예측력 향상 

     * 랜덤추출을 하지 않으면, 모든 트리들은 가중치가 높은 변수를 상위 노드로 정하려하기 때문에 트리가 다 똑같아질 것임


   2) 임의 노드 최적화 

   : 분석에 사용될 데이터를 랜덤하게 추출 


- 후보(=mtry)

  : 설명변수들 중 각 트리에 사용 될 변수 후보  

    ex) 10개의 설명변수가 있다고 가정, 후보군(mtry)을 5개로 지정했다고 한다면 각 트리들이 생성될 때 10개의 설명변수 중 5개의 변수를 랜덤으로 선택하여 트리를 생성

     * 후보군을 통해 각기 다른 트리를 구성할 수 있음

     * 후보군의 크기가 작아질수록 각 트리들이 모두 다르게 구성 -> 예측력 향상

       하지만! 후보군을 너무 작게하면(=1) 가중치가 적은 설명변수들이 상위 노드에 위치하게되어 불순도가 높아짐 -> 복잡한 트리 구성

     * 후보군의 크기가 커질수록 각 트리들이 모두 비슷하게 구성 -> 예측력 하락(=단일 의사결정)

     * 결론으로, 후보군은 낮아서도 높아서도 안 되고, 모델, 데이터마다 적정한 후보군의 크기가 다르므로 튜닝이 꼭 필요 !





참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정


반응형
댓글
최근에 올라온 글
최근에 달린 댓글
링크
Total
Today
Yesterday