결정 트리

결정 포레스트 모델은 결정 트리로 구성됩니다. 결정 포레스트 학습 알고리즘 (예: 랜덤 포레스트)은 최소한 부분적으로는 결정 트리 학습에 의존합니다.

이 섹션에서는 작은 데이터 세트 예시와 단일 결정 트리를 학습시키는 방법을 학습합니다. 다음 섹션에서는 결정 트리를 결합하여 결정 포레스트를 학습시키는 방법을 알아봅니다.

YDF 코드

YDF에서 CART 학습자를 사용하여 개별 결정 트리 모델을 학습시킵니다.

# https://ydf.readthedocs.io/en/latest/py_api/CartLearner
import ydf
model = ydf.CartLearner(label="my_label").train(dataset)

모델

결정 트리는 계층적으로 트리 모양으로 구성된 '질문'의 모음으로 구성된 모델입니다. 이러한 질문을 일반적으로 조건, 분할 또는 테스트라고 합니다. 이 클래스에서는 '조건'이라는 용어를 사용합니다. 각 비리프 노드에는 조건이 있으며 각 리프 노드에는 예측이 포함되어 있습니다.

식물 수목은 일반적으로 뿌리가 맨 아래에 자라며, 결정 트리는 보통 맨 위에 있는 루트 (첫 번째 노드)로 표현됩니다.

2개의 조건과 3개의 리프가 포함된 결정 트리 첫 번째 조건 (루트)은 num_legs >= 3이고 두 번째 조건은 num_eyes >= 3입니다. 세 개의 잎은 펭귄, 거미,
개입니다.

그림 1. 간단한 분류 결정 트리 녹색 범례는 결정 트리의 일부가 아닙니다.

 

결정 트리 모델의 추론은 조건에 따라 루트(상단)의 예를 리프 노드(하단) 중 하나(하단)로 라우팅하여 계산됩니다. 도달한 리프의 값은 결정 트리의 예측입니다. 방문한 노드 집합을 추론 경로라고 합니다. 예를 들어 다음과 같은 특성 값을 생각해 보세요.

num_legs num_eyes
4 2

예상 검색어는 dog입니다. 추론 경로는 다음과 같습니다.

  1. num_legs ≥ 3 → 예
  2. num_eyes ≥ 3 → 아니요

그림 1과 같은 그림이지만 이 그림은 두 조건에 걸친 추론 경로를 보여주며 개를 나타내는 잎으로 끝납니다.

그림 2. 예시 *{num_legs : 4, num_eyes : 2}*의 잎 *개*에서 끝나는 추론 경로입니다.

 

이전 예에서 결정 트리의 잎에는 분류 예측이 포함되어 있습니다. 즉, 각 리프에는 가능한 종의 집합 중 한 종의 동물이 포함되어 있습니다.

마찬가지로 결정 트리는 회귀적 예측 (숫자 값)으로 리프에 라벨을 지정하여 숫자 값을 예측할 수 있습니다. 예를 들어 다음 결정 트리는 0~10 사이의 동물의 귀여움 점수를 숫자로 예측합니다.

각 리프에 서로 다른 부동 소수점 수가 포함된 결정 트리

그림 3. 수치 예측을 하는 결정 트리