2024.12.08 - [Data Science/실습] - DS 실습 18 - 의사결정나무 모델: 분류 및 회귀나무
의사결정나무
- 데이터를 특정 기준에 따라 재귀적으로 분리하면서 나무 형태의 구조를 형성합니다.
분류나무
- 범주형 목표 변수를 기준으로 마디를 나눔
- 끝마디에 포함된 자료의 범주가 분류 결과 값이 됨
회귀나무
- 연속형 목표 변수를 기준으로 마디를 나눔
- 끝마디에 포함된 자료의 평균값이 각 끝마디의 회귀 값이 됨
알고리즘
현재 보고 있는 dataset target value가 모두 같은 값이면, 더 이상 분류할 게 없으니 stop
다른 값이 섞여있으면, tree는 분기가 되고 dataset은 segmentation이 된다-> stop 될 때까지 loop
좋은 모델은? 분류가 조금 더 잘되어있는 상태
그래서, dataset 을 segmentation 할 때 이전보다는 좀 더 분류가 잘 되게 하는 기준이 있음
=> 불순도를 감소시키는 방향으로 분리 (Impurity 감소 = Purity 증가)
불순도: target value 값이 섞여있지 않음
장점
- 시각화를 통한 쉬운 이해
- 자료 가공이 거의 필요 없음: 다른 알고리즘에 비해.. 전처리는 필요함
- 수치/ 범주형 데이터 적용 가능
- 비모수적 방법: 머신러닝은 다 비모수적임
- 대량 데이터 처리에 적합: 알고리즘이 단순하기 때문에
단점
- 휴리스틱에 근거한 실용적 알고리즘으로 전역 최적화를 얻지 못할 수 있음
- 과적합이 쉽게 발생
- 자료에 따라 불안정함 (특히 적은 자료, Class 수에 비교하여 학습 데이터가 적은 규모이면 높은 분류 에러 발생)
- Feature 간의 복잡한 관계를 처리하지는 못함
- 자료가 복잡하면 실행 시간이 급격히 증가
- 분할 기준 선택(지니 계수, 엔트로피 등)에 따라 결과가 민감하게 달라질 수 있음.
- 분류 stop 될 때까지 재귀적이기 때문에 언제 끝날 지 모름. 시간이 오래 걸릴 수도
Select Featrue & Split
- 불순도를 최소화하는 기준 (Split feature & value) 선택
- 반복하며 의사결정나무 구성
불순도 측정, Impurity Measure
- 특정 노드에 다양한 범주의 개체가 있는 지 측정. 아래 방법으로 판별한다
1. 범주형 목표변수 ( 각 범주에 속하는 빈도에 기초하여 분리)
- Gini Reduction
p 는 확률. 클래스 에 속하는 데이터의 비율
G 값이 작으면 작을수록 분류가 잘 되어 있어 좋음
(0 <= G <= 0.5)
- 엔트로피 Entropy Reduction (0 <= <= 1)
- Chi-square test
2. 연속형 목표변수 ( 목표 변수의 평균에 기초하여 분리)
- F-test
- Reduction of Variance
Early Stopping Rule ( 정지 규칙)
- 의사결정나무가 완전히 다 자라기 전에 정지하도록 하여 과적합을 방지하거나 지나치게 긴 실행 시간을 제한할 수 있음
1) 트리의 깊이(depth)가 지정한 값(Max Depth)에 도달함
2) 노드의 크기가 지정한 값(Min Instance Per Node) 보다 작음
3) 불순도의 감소량이 지정된 값(Min Information Gain)보다 작음
Pruning 가지치기
- 끝까지 자라도록 한 후 상향식으로 가지치기 실행
- 가지치기 결과로 generalization error 가 개선되면 sub-tree를 마디로 대체
- 해당 끝마디의 클래스는 sub-tree 내 클래스의 다수결로 결정
중요 Variables
- Tree 상단에서 사용: 무조건 상단이 하단보다 중요한 것은 아님!
- 자주 사용
- 혼잡도 개선 효과가 높은 것
Q. 불순도 측정 범주/연속형 종류 문제
Q. I.G(Iformation Gain, 정보증가량, 정보이득) or 종합불순도를 구하세요 라고 나옴
손으로 푸는 문제나오면 제일 마지막에.. 최소 15분 걸림!
- 의사결정 나무의 단점을 보완하기 위해 랜덤 포레스트(Random Forest) 같은 앙상블(Ensemble) 기법이 자주 사용됩니다.
앙상블(Ensemble) 모델링
: 2개 이상의 모델을 활용하여 단일 모델 대비 더 나은 성능의 모델을 만드는 것. 특수한 학습 형태 (회귀+회귀, ..)
- 종속변수의 특성이 또렷하게 2개 이상으로 쪼개지는 경우.
- 단일 모델로 충분한 성능을 기대하기 어려운 경우
ex) 선형회귀 모델 + KNN 회귀 모델 결합
배깅(Bagging, Bootstrap Aggregating)
: 모델의 안정성과 정확도를 향상시키기 위한 기법
- 분산을 줄이고 과적합을 방지
- 각 모델을 생성하기 위해 사용하는 데이터는 부트스트랩 샘플 데이터
- 각 모델의 예측값을 취합(Aggregating)할 때 평균(회귀모델) 또는 투표(분류모델)를 활용
투표 (Voting)
: 서로 다른 모델의 예측치를 취합하여 하나의 결과로 결정하는 방법
- 분류의 경우 최빈값을 기준으로 하는 Hard Voting, 확률이 가장 높은 값을 기준으로 하는 Soft Voting 중 선택
랜덤포레스트
- 앙상블 기법 중 하나
- 주어진 데이터의 부트스트랩 표본을 이용해 트리모델을 다수 구성하고 그 결과를 취합
- 의사결정나무를 기반으로 만들어진 모델이기 때문에 설정값이 유사
- 회귀/ 분류 모델이 있음
- 통계적 가정이 필요없으나 선형 모델 대비 결과 해석이 어려움
- 트리 개수가 많을 경우, 연산시간이 오래 걸림
- row: bootstrap sampling, columns: random sampling. 각각의 트리모델의 학습에 관여하는 독립변수가 다름
[변수중요도 (feature Importance) 를 계산하는 방법]
- MDI(Mean Decrease Importance): 노드 분할 시 불순도 감소분의 평균을 활용
- Permutation Importance: test set의 특정 변수를 임의로 섞었을 때 기준 평가지표 변화량을 기준으로 중요도 산출
-> 그 변수가 모델 성능에 얼마나 영향을 미치는지 확인하는 과정 .모델에 종속하지 않음. 독립변수에 구애받지 않음.
Permutation , 순열이란 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것.
Permutation Importance는 다음과 같은 과정을 통해 변수 중요도를 계산.
1.기준 성능 측정: 원래의 테스트 세트를 사용하여 모델의 성능(예: 정확도, MSE 등)을 계산합니다.
2.특정 변수 섞기: 테스트 세트에서 특정 변수(예: X1)의 값을 무작위로 섞어 해당 변수와 목표값(target) 간의 관계를 깨뜨립니다.
3.성능 재측정: 변수를 섞은 데이터로 모델의 성능을 다시 계산합니다.변화량 계산: 기준 성능과 섞은 후의 성능 간의 차이를 계산합니다. 이 차이는 해당 변수가 예측에 얼마나 중요한지를 나타냅니다.
4.큰 성능 저하 → 해당 변수가 매우 중요한 변수임을 의미.
성능 변화 거의 없음 → 해당 변수가 덜 중요한 변수임을 의미.
- Drop Column Importance: 특정 변수를 제외 후 평가지표 변화량을 기준으로 중요도 산출 -> 독립변수에 구애 받지 않음. 변화량이 크면 중요도가 높음. 연산 비용 높음
'Data Science > 이론' 카테고리의 다른 글
선형회귀분석 정규방정식(추정회귀선)에서 기울기 계산식 이해하기 (0) | 2024.12.16 |
---|---|
DS 이론 24- 군집분석, 비계층적 K-means (0) | 2024.12.10 |
DS 이론 22- 나이브베이즈분류, 예제 (0) | 2024.12.08 |
DS 이론 21- KNN 알고리즘 (0) | 2024.12.08 |
DS 이론19~20- 선형회귀분석(머신러닝),로지스틱 회귀분석* (0) | 2024.12.03 |