Decision Tree(의사결정나무)

알고리즘
-데이터를 2개 혹은 그 이상의 부분 집합으로 분할
-더 작은 부분집합으로 분할과정 반복
-분할과정 반복 중단, 나무의 확장 중단

왜 자꾸 나눌가?/무슨 기준으로 나눌까?/언제까지 나눌까?

basic idea
-데이터 셋의 반복적인 이진 분할
-목적: 최대한 분할된 공간 내의 관측치들이 순수해 지도록
-순수하다의 의미: 가장 비슷한 개체들끼리 모여있도록
-각 최종 노드에 속한 관측치들은 서로 중복이 없음

tree의 알고리즘 미리 맛보기
decision tree의 주요 이슈 2가지..
-어디를 어떻게 분할할 것인가?(어떤 변수? 어떤 값)
-나무를 얼마나 깊게 전개할 것인가(가지치기?)

classification tree와 regression tree
-classification tree : 순수도 측정
-regression tree:sum of square
-분할 시, 같은 공간에 있는 관측치들끼리는 최대한 비슷하도록
-information gain : 나누기 전과 후의 분할 효과 차이->이곳을 최대화 하는 것이 바로 tree의 핵심
-binary partitioning algorithm : 탐욕 탐색의 일환으로, 모든 변수로 모든 지점을 다 나눠보는 컨셉

Pruning(가지치기:어디까지 나무를 전개할까?)
-너무 큰 나무->training 데이터에는 잘 맞으나 testing에는 안 맞음(overfitting)
-너무 작은 나무(단순한 나무)-> 데이터 특직을 표현하기에 충분하지 않음
-일반적으로 test error가 가장 작은 수준으 ㅣ깊이까지 가지를 쳐냄
-에러는 최대한 작게 tree는 최대한 단순하게
-cost function(복잡도+에러)을 최소화하는 분기/depth 설정
-너무 나누면 overfiting

Decision Tree의 장단점
장점
-Classification/Regression 둘 다 활용 가능
- “해석력” 제공 : If~then 룰의 제공을 통해 현상에 대한 설명력 최대화 (실무적 활용도 매우 높음)
-Feature Selection(변수 선택) 효과 : 중요한 변수 알려줌
-좋은 성능과 향후 Ensemble Tree로써 매우 훌륭한 성능 보여줌
단점
-변수가 너무 많으면 알고리즘이 오래걸림
-변수간 Screening 효과 존재 (변수 선택으로 인한 다른 주요정보 생략 위험 존재)
-직선 분할과 평균 추정의 한계점

+ Recent posts