성신여대 김영훈 교수님의 K-MOOC 실습으로 배우는 머신러닝 강의 내용을 바탕으로 포스팅하였습니다.
1차시: Decision Tree
1. Decision Tree 🌳
가. 정의
분류와 회귀 작업 및 다중 출력 작업도 가능한 다재다능한 머신러닝 방법론
IF-THEN 룰에 기반해 해석이 용이하다. (화이트 박스 모델)
- 변수 하나 하나에 적합한 분할을 한다
- 한 번에 한 개의 변수를 사용하여 정확한 예측이 가능한 규칙들의 집합을 생성
일반적으로 예측 성능이 우수한 RF의 기본 구조
CART 훈련 알고리즘을 이용해 모델을 학습함
나. DT 기본 구조 및 용어
✔️ Root node: 분할 전의 초기의 상태
✔️ Branch: edge라고 부르기도 하며, 노드에서 노드로 가는 길목
✔️ Decision node: internal node 또는 규칙노드라고 부르기도 하며, 다른 하나의 branch로 가기 위해 결정해주는 node
✔️ Leaf node: external node 또는 Terminal node라고 부르기도 하며, 더 이상 분할되지 않고 그 상태에 머무른다. 분류문제에서 class(label, 정답)에 해당하는 node이다.
다. 분할 기준
if-then 규칙에 의거하여 데이터를 분할하고,
if-then 규칙은 데이터 공간 상에서는 각 변수를 수직 분할한 것과 동일하다.
그리고 수직 분할 할 때는 데이터 공간의 순도가 증가되게끔 영역을 구분한다.
데이터의 순도가 증가된다는 것은 training error가 감소한다는 것과 같은 개념이다.
그럼 새로운 관측치(회색 동그라미)가 들어오면 어떻게 할까?
공간의 순도가 증가되게끔 분할한 기준에 맞춰 새로운 동그라미를 분류하게 된다.
이처럼 회색 동그라미가 왜 우측 하단으로 분류되는지 명확하게 해석할 수 있기 때문에
DT로 분류나 예측을 하게 되면 높은 해석력을 가진다는 장점이 있지만
데이터의 작은 변화에 민감하다는 한계점을 가지고 있고 이러한 한계점을 극복하는 방법은 바로 ensemble이다.
2차시: Decision Tree 학습
DT classification에서는 지니 불순도를 기준으로 불순도가 최소화되게끔 하는 분할을 한다.
1. 불순도(gini index)
가. 정의
한 노드에 속하는 샘플들의 클래스 비율을 이용해서 특정 노드가 얼마나 잘 구분되었는지 측정하는 지표
P_i,k는 i번째 노드에 있는 훈련 샘플 중 클래스 k에 속한 샘플의 비율을 의미한다.
'불순도'이기 때문에 값이 작은수록 좋은 것이다.
나. 불순도 계산해보기
2. CART 알고리즘
가. 정의
Classification and Regression
Tree-분순도를 최소화하도록 최종 노드를 계속 이진 분할하는 방법론
Gleft와 Gright는 각각 왼쪽 오른쪽 서브셋의 불순도
mleft와 mright는 각각 왼쪽 오른쪽 서브셋의 샘플 수
나. 중지규칙
최대 깊이에 다다랐을 경우
불순도를 줄이는 분할을 찾을 수 없는 경우
다. 문제점과 해결방안(regularization)
훈련데이터에 대한 제약사항이 없기 때문에 과대 적합의 문제가 일어나기 쉽다는 문제점이 있고
훈련에 제약을 두는 방법(regularization)으로 과대 적합의 문제를 해결할 수 있다.
max_depth: 트리의 최대 깊이 제어
min_samples_split: 분할되기 위해 노드가 가져야 하는 최소 샘플 수
min_samples_leaf: 리프 노드가 가지고 있어야 할 최소 샘플 수
max_leaf_nodes: 리프 노드의 최대 수
위 사진처럼 regularization을 사용함으로써 과적합 문제를 해결할 수 있다.
3차시: Decision Tree Regression
1. Decision Tree Regression
위에서 이야기 했듯이 DT classification에서는 지니 불순도를 기준으로 불순도가 최소화되게끔 하는 분할을 한다.
그럼 y가 연속적인 값을 가진 경우에는 어떻게 처리를 할까?
전체적인 콘셉트나 전체적인 작동 방식은 비슷하며 target이 되는 y값을 어떻게 처리하느냐에 차이가 존재한다.
regression에서는 각각의 노드에 속한 관측치들의 평균 타겟값(y)으로 예측한다.
(classification에서는 다수결에 따라 다수에 속하는 class로 분류를 해주었다.)
예를들어 아래와 같이 X와 y가 있다고 가정해보자.
3개가 한 노드에 속하는 값이라고 할 때
classification에서 y는 다수결에 따라 X1으로 분류될 것이고
regression에서 y는 평균에 따라 8이 될 것이다.
이를 plot_tree로 본다면, value값이 바로 평균이다.
(또한, classification에서는 mse 대신 gini가 있었다.)
Depth를 키워주면, 더 다양한 예측 값들을 갖게 될 것이다.
2. CART 알고리즘
가. 정의
Classification and Regression
Tree-분순도를 최소화하도록 최종 노드를 계속 이진 분할하는 방법론
MSEleft와 MSEright는 각각 왼쪽 오른쪽 서브셋의 MSE 값
mleft와 mright는 각각 왼쪽 오른쪽 서브셋의 샘플 수
나. 중지규칙
최대 깊이에 다다랐을 경우
오차를 줄이는 분할을 찾을 수 없는 경우
다. regularization
regularization을 사용함으로써 과적합 문제를 해결할 수 있다.
참고
[ML] Decision Tree(의사결정나무) (tistory.com)
분류(Classification) - Simple & Clear Engineer Note (sangyunlee.com)
'강의 내용 정리하기 > 실습으로 배우는 머신러닝' 카테고리의 다른 글
[K-mooc] 8. Principal Componet Analysis (0) | 2022.11.22 |
---|---|
[K-mooc] 7. Ensemble Learning (0) | 2022.11.22 |
[K-mooc] 4. Model Learning with Optimization (0) | 2022.11.22 |
[K-mooc] 3. Classification(KNN, 로지스틱 회귀모형) (0) | 2022.11.21 |
[K-mooc] 2. Machine Learning Pipeline (0) | 2022.11.21 |
댓글