Data Science/이론

DS 이론 23- 의사결정나무,앙상블-랜덤포레스트

에너지_2 2024. 12. 10. 00:25
728x90
반응형

2024.12.08 - [Data Science/실습] - DS 실습 18 - 의사결정나무 모델: 분류 및 회귀나무

 

DS 실습 18 - 의사결정나무 모델: 분류 및 회귀나무

분류 나무(Classification Tree)- 종속변수가 명목형인 경우 사용- 각 노드 분류 알고리즘은 이진 분류 시 Gini Index 기반의 CART(Classification And Regression Tree) 사용 회귀 나무(Regression Tree)- 종속변수가 연속

sometipsfor.tistory.com


의사결정나무

- 데이터를 특정 기준에 따라 재귀적으로 분리하면서 나무 형태의 구조를 형성합니다.

 

 

분류나무

- 범주형 목표 변수를 기준으로 마디를 나눔

- 끝마디에 포함된 자료의 범주가 분류 결과 값이 됨

 

회귀나무

- 연속형 목표 변수를 기준으로 마디를 나눔

- 끝마디에 포함된 자료의 평균값이 각 끝마디의 회귀 값이 됨

 

알고리즘

 

현재 보고 있는 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: 특정 변수를 제외 후 평가지표 변화량을 기준으로 중요도 산출 -> 독립변수에 구애 받지 않음. 변화량이 크면 중요도가 높음. 연산 비용 높음

 

반응형
300x250

 

728x90
반응형