728x90

1. 정의

- 설명변수들의 관계, 패턴 등으로 연속형 목표변수를 분류하는 나무 구조의 모델을 만들고, 설명변수들의 관측값을 모델에 입력하여 목표변수를 분류 및 예측하는 지도학습

- 목표변수에 영향을 주는 설명변수를 찾고, 해당 설명변수의 최적 분리기준을 제시

- 목표변수의 평균을 예측

- 고객 관리, 불량 개선, 금융 거래 등에 활용

 

2. 장단점

장점 단점
분석 결과가 직관적으로 제공되며 해석이 용이 비연속적 분리로 경계점 근처에서 분리 오류 발생 가능
데이터 사전 처리가 거의 요구되지 않고, 대용량 데이터에 적용 가능 설명변수가 목표변수와 선형관계가 높은 경우에도 분리로 인해 선형성 파악이 미흡할 수 있음
통계분석 가정의 엄격한 준수를 요구하지 않는 비모수적 방법 train data 과대적합이 있어 결과가 불안정

 

3. 구조 및 용어

용어 설명
루트 노드(Root node) 나무구조가 시작되는 노드
자식 노드(Child node) 상위의 노드에서 분리된 노드
부모 노드(Parent node) 자식 노드의 상위 노드
중간 노드(Internal node) 나무 중간에 있는 노드(끝 노드가 아닌 경우)
끝 노드(Terminal node) 또는 리프(Leaf) 각 줄기 끝에 위치한 노드
가지(Branch) 하나의 노드로부터 끝 노드까지 연결된 일련의 노드들
깊이(Depth) 가지를 이루고 있는 노드의 분리 층수
순수 노드(Pure node) 해당 노드의 목표변수가 동일한 값/종류만 가지는 노드
최대 트리(Full tree) 모든 끝 노드(Terminal node)가 순수 노드로 이루어진 나무 구조

 

4. 분리 기준 : 예측값과 실제값의 차이 최소화

1). MSE(Mean Squared Error, 평균제곱오차)

- 모델 예측값과 실제값 간의 제곱오차의 평균으로 부모 노드의 평균제곱오차를 가장 많이 감소시키는 설명변수와 분리 값을 기준으로 자식 노드 형성

- MSE가 작을수록 오차가 작은 좋은 모델

- 파이썬은 수정 보완된 Friedman MSE 지원

2). MAE(Mean Absolute Error, 평균절대오차)

- 모델 예측값과 실제값 간의 절대오차의 평균으로 부모 노드의 평균절대오차를 가장 많이 감소시키는 설명변수와 분리 값을 기준으로 자식 노드 형성

- MAE가 작을수록 오차가 작은 좋은 모델

 

5. 과대적합

- train data 정보를 너무 많이 사용해서 복잡한 모델을 만드는 것으로 test data에 일반화가 어려워 오차/오분류가 증가하는 상태

- 노드 분리가 증가하는 초기에는 test data에 대한 오차/오분류가 감소

- 노드 수가 일정 수준을 초과하면 오차/오분류 증가

- test data 적용시 오차/오분류가 증가하는 지점 근처에서 가지치기 등을 활용하여 방지

 

6. 가지치기 종류

1). 사전 가지치기 : 모델 생성 이전에 분리 정지 조건을 지정

① 잎사귀 노드 최소 자료 수

- min_samples_leaf

- 최소 자료 수를 감소시키면 과대적합됨

② 분리 노드의 최소 자료 수

- min_samples_split

- 최소 자료 수를 감소시키면 과대적합됨

③ 최대 깊이

- max_depth

- 최대 깊이를 증가시키면 과대적합됨

 

2). 사후 가지치기 : 생성된 모델 결과에서 가지치기 수행

- 파이썬에서는 사전 가지치기만 지원

 

7. 설명변수 중요도

- 나무 생성 과정에서 분리에 기여한 설명변수의 상대적 중요도를 표시

- 값이 낮다고 해당 변수가 전혀 유용하지 않다는 뜻은 아니며, 다른 조건으로 나무 생성 시 변수 중요도가 바뀔 수 있음

반응형