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. 설명변수 중요도
- 나무 생성 과정에서 분리에 기여한 설명변수의 상대적 중요도를 표시
- 값이 낮다고 해당 변수가 전혀 유용하지 않다는 뜻은 아니며, 다른 조건으로 나무 생성 시 변수 중요도가 바뀔 수 있음
'정리 필요' 카테고리의 다른 글
[빅데이터] 데이터 스케일링 / Data Scaling (2) | 2023.01.08 |
---|---|
[빅데이터] 데이터 인코딩 / Data Encoding (2) | 2023.01.08 |
[빅데이터] Random Forest Regressor (0) | 2022.12.29 |
[엑셀] 취소선(가운데 줄) 단축키 (0) | 2022.10.13 |
[파이썬] 경고 무시 (0) | 2022.10.11 |