학부 수업 내용 정리/인공지능심화

#8 Decision Tree (1)

supersumin 2024. 10. 1. 12:45

1. Decision Tree란?

1.1. Decision Tree의 의미

Decision Tree는 데이터에 대해 Classification(분류 문제) 및 Regression(회귀 문제)에 사용되는 머신러닝 모델이다.

 

이 모델은 트리 구조로 데이터를 학습하며, 각 내부 노드는 특정 attribute(속성)에 대한 값을 기반으로 데이터를 분리하는 테스트를 진행하며, 최종적으로 예측 결과가 담긴 leaf node(최종 잎 노드)까지 도달하게 된다.

1.2. Decision Tree의 특징

- non-backtracking

Decision Tree가 예측을 하기 위해 root부터 leaf까지 한 번 선택한 경로는 다시 돌아갈 수 없다는 것을 의미한다. 즉, 노드를 따라 진행되는 선택 과정에서 한 번 내린 결정은 이후 수정하거나 번복할 수 없다.

 

Decision Tree는 root 노드에서 시작해 각 노드의 attribute(속성)의 값을 기준으로 branch(분기)를 선택한다. 이러한 선택은 데이터의 attribute의 value에 기반하여 이루어진다.

 

각 path(경로)를 따라 순차적으로 의사결정을 내려가면서 하나의 leaf 노드에 도달한다. 이 leaf node는 최종 예측 결과를 나타내며, 경로는 단 하나의 path에 의해 결정된다.

- Disjunction of Conjunctions

Decision Tree는 각 node에서 branch하며 하위 node로 내려가는 과정은 attributes 간의 conjuction(논리적 AND)으로 이루어지지만 Decision Tree에서 각각의 path는 서로 disjunction(논리적 OR)한 관계에 있다.

 

각각의 path는 attributes간의 conjunctions한 관계로 이루어지지만 path 간의 관계가 disjunction이라는 것이다. 따라서 Decision Tree는 Disjunction of Conjunctions이라고 할 수 있다.

1.3. 예시

tennis를 칠 수 있는 날씨인가에 대한 Decision Tree 예시이다. 날씨와 관련된 여러 attribute를 기반으로 특정 결정을 내리는 구조이다.

예시에서 볼 수 있듯이, Attribute는 의사 결정을 내리기 위해 고려하는 특성이나 기준이다. Value각 Attribute가 가질 수 있는 구체적인 상태나 범주이다.

 

* Classification과 Regression이란? *

Classification (분류 문제): 주어진 입력 데이터를 미리 정의된 범주(클래스)로 나누는 문제이다. 예를 들어, 이메일이 스팸인지 아닌지를 분류하는 문제나, 사진 속에 고양이가 있는지 없는지를 판별하는 문제 등이 분류 문제에 해당한다.

 

Regression (회귀 문제): 연속적인 숫자 값을 예측하는 문제를 의미한다. 예를 들어, 집의 크기와 방 개수 등의 정보를 입력으로 받아서 집 가격을 예측하는 문제나, 특정 시간대의 온도를 예측하는 문제 등이 회귀 문제이다.

 

즉, 회귀 문제의 목는 연속적인 값을 출력하는 것이 목표입니다. 

 

2. 좋은 Attributes란?

2.1. Decision Tree에서 Attributes 선택 기준 어떤 기준으로 골라야할까?

Decision Tree에서 Attributes를 선택하는 기준은 결과 예측에 얼마나 기여하는지에 따라 결정된다. 주요 목표는 각 분기에서 데이터를 최대한 잘 분류할 수 있는 Attribute를 선택하는 것이다.

 

이 과정은 ID3(Iterative Dichotomiser 3) 알고리즘을 사용하여 구현되며, Entropy와 Information Gain이 주요 기준으로 활용된다.

2.2. Entropy(엔트로피)와 Information Gain(정보 이득)

2.2.1. Entropy에 대해

- Entropy(엔트로피)의 뜻과 값의 의미

Entropy데이터나 현상이 얼마나 예측 가능한지를 나타내는 지표불확실성 또는 혼란의 정도를 측정한다.

 

Entropy 값은 0에서 1 사이의 값을 가지며 값이 낮을수록 데이터나 현상은 예측하기 쉬워진다. 이는 데이터의 분포가 한쪽으로 치우쳐 있어서 한 클래스가 거의 항상 나오기 때문이다.

 

반면, Entropy 값이 높을수록 데이터나 현상이 예측하기 어렵고 더 혼란스러운 상태를 나타낸다. 이는 클래스들이 고르게 섞여 있어 어떤 클래스가 나올지 예측하기 힘든 경우이다.

- Entropy 공식

Entropy는 각 클래스의 확률을 이용해 데이터가 얼마나 혼란스러움과 예측의 어려움을 계산하는 방식이다.

 

- Entropy 공식에서 로그 밑이 2인 이유

Entropy를 계산할 때 로그 밑정보를 다루는 단위에 따라 달라질 수 있다. 정보를 측정하는 방식에 따라 다른 로그 밑을 사용할 수 있다는 뜻이다.

  • 로그 밑이 2인 경우(비트, bit): 이진 시스템에서 정보를 다룰 때, 정보량의 단위를 비트로 측정하기 때문에 로그 밑을 2로 설정한다.
  • 로그 밑이 e인 경우(나트, nat): 연속적인 확률 분포나 물리학적 상황에서는 자연로그를 사용하여 Entropy를 계산한다.
  • 로그 밑 10인 경우(하틀리, hartley): 십진법에 기반한 정보 시스템에서 쓰이며 10개의 선택지 중 하나를 고를 때 그 정보량은 1하틀리라고 한다.

Decision Tree에서는 이진 분기를 사용하기 때문에 Entropy 계산 시 로그 밑을 2로 설정한다.

 

- Entropy 계산 예시

2.2.2. Information Gain에 대해

- Information Gain(정보 이득)이란?

Information Gain은 Decision Tree 알고리즘에서 특정 속성(Attribute)이 데이터를 얼마나 잘 분류하는지를 평가하는 중요한 지표이다.

Information Gain은 특정 속성을 기준으로 데이터를 나누었을 때, 엔트로피(Entropy)가 얼마나 감소하는지를 측정한다.

즉, Information Gain은 전체 데이터 집합에서 특정 속성에 의해 분할된 후의 엔트로피와 원래 엔트로피 간의 차이이다. 이는 어떤 속성을 선택했을 때, 그 속성이 데이터의 불확실성을 얼마나 줄이는지를 평가하는 것이다.

- Information Gain 계산 방법

  • 전체 Entropy 계산: 전체 데이터 집합 S의 Entropy를 계산한다
  • Attribute에 따른 Subset Entropy 계산: 특정 Attribute A를 기준으로 데이터를 나눈 후, 각 Subset Sv의 Entropy를 산한다.
  • 가중 평균 Entropy 계산: 각 Subset의 Entropy에 해당 Subset의 비율을 곱하여 가중 평균을 구한다.
  • Information Gain 계산: 전체 Entropy에서 Attribute에 따른 Subset Entropy를 계산한 값을 빼 계산한다.

계산식에서 알 수 있듯이 각 Attribute는 독립적인 Information Gain을 가지며 다른 Attribute의 Information Gain에 영향을 받지 않는다.

 

- Infromation Gain 예시

Wind에 대한 Infromation Gain을 구해보자

바람에 세기에 따라 칠 수 있냐 칠 수 없냐의 경우
Wind의 Information Gain보다 큰 값이면 더 좋은 Attribute가 될 수 있다!

 

3. Decision Tree에서 Attributes의 특징

- Information Gain이 높을수록 root 근처에 있다.

Information Gain이 높을수록 데이터를 분류하는 데 가장 큰 기여를 하기 때문에 root 노드 주위에 있다.

- Attribute는 각 분기마다 가장 큰 값이 우선적으로 상위 node에 위치한다.

Information Gain이 가장 큰 Attribute가 분기에서 먼저 선택된다. Decision Tree는 불확실성을 최대한 줄이는 방향으로 진행되기 때문에 가장 영향력 있는 Attribute가 상위 노드에 위치하게 된다.

- Cascade와의 차이점

Cascade는 계층적으로 하나의 path를 구성하며 각 노드가 다음 단계로 이어지는 결과가 나오지만 Decision Tree는 각 분기점에서 데이터를 여러 방향으로 나누며, 여러 path로 데이터를 구분한다.

- 애초에 엔트로피가 낮으면(이미 잘 분리되어 있는 데이터) gain 값이 높은 attribute가 없어 성능은 어떻게 되나?

이미 데이터가 어느 정도 분류된 상태이므로 Infromation Gain을 많이 얻지 못할 수 있다. 이 경우 트리가 추가적인 성능의 개선을 가져오지 못할 수 있다.

- 극단적으로 Gain이 높은 Attribute가 있지만 그 Attribute가 의미가 없는 경우는?

Information Gain이 높더라도 분류에 실제로 도움이 되지 않는 Attribute는 트리 성능을 저하시킬 수 있다. 의미 있는 분류 기준이 아니라면 말이다.

 

예를 테니스를 칠 수 있는 경우를 체크하는데 극단적으로 추운 날이면 무조건 Yes가 나올 테다. 근데 이 Attribute는 의미가 없다.

- Decision Tree는 간단한 게 제일 좋으나 attribute가 꼭 하나만 있으면 성능이 떨어질 수 있다.

하나의 Attribute만으로 데이터를 분류하면 정보가 부족하여 트리의 성능이 제한될 수 있다. 여러 Attribute가 있을 경우 데이터를 더 잘 분류할 수 있으며 이는 여러 명이서 협력해서 일을 처리하는 것과 비슷하다

- 그렇다고 너무 세분화 되면 Overfitting 방지가 필요하다.

과도한 세분화(Overfitting)는 트리가 너무 깊어져 학습 데이터에는 정확히 맞추지만 새로운 데이터에는 일반화가 잘 되지 않을 수 있다.

 

4. Random Forest란?

4.1. Random Forest 의

Random Forest여러 개의 Decision Tree를 조합하여 더 나은 예측 성능을 얻기 위한 앙상블 학습 기법이다. 이때 random이라는 용어는 두 가지 주요 요소에서 발생한다.

- Bootstrap Sampling(부트스트랩 샘플링)

각 Decision Tree는 전체 데이터셋에서 무작위로 선택된 sample을 사용하여 훈련한다. 원본 데이터에서 랜덤하게 선택된 데이터로 구성되기 때문에 각 Decision Tree의 다양성이 증가한다.

- Random Attribute(랜덤 특성)

각 노드를 branch할 때 전체 Attribute 중 무작위로 선택된 일부 Attribute만을 고려하여 최적의 분할을 찾는다. 이로 인해 특정 Attribute에 의존하지 않고 더 일반화된 모델을 생성할 수 있다.

 

5. Inductive Bias란?

5.1. Inductive Bias의 의미

Inductive Bias머신러닝 모델이 새로운 데이터에 대해 예측할 때 사용하는 가정이나 규칙을 의미한다.

5.2. Inductive Bais 예시

- Decision Tree

Decision Tree 모델은 데이터를 분할하는 방식에서 Tree 구조를 전제하므로 데이터를 학습할 때 데이터는 Tree 구조일 것이라는 가정을 하고 학습하는 것이다. 모델이 데이터에 대해 어떠한 구조를 가질 것이라는 가정을 하는 것이다.

- CNN

CNN 모델에서도 Inductive Bias가 존재한다.

 

작은 지역적 부위에서부터 시작해 전체적인 패턴을 형성한다는 Bias, 데이터는 어느 위치에서든지 동일한 특성을 학습할 수 있다는 가정, 학습이 진행됨에 따라 점차 복잡한 특성을 학습할 것이라는 Bias를 내포하고 있다.

 

'학부 수업 내용 정리 > 인공지능심화' 카테고리의 다른 글

#12 Neural Network (1)  (0) 2024.11.25
#10 Linear Classifier (1)  (0) 2024.10.18
#7 Introduction to Optimization  (0) 2024.10.01
#4 Regression(3)  (0) 2024.10.01
#3 Regression(2)  (0) 2024.10.01