결정 포레스트 모델은 결정 트리로 구성됩니다. 결정 포레스트 학습 알고리즘 (예: 랜덤 포레스트)은 적어도 부분적으로 결정 트리의 학습에 의존합니다.
이 과정에서는 작은 예시 데이터 세트를 살펴보고 단일 의사결정 트리가 학습되는 방식을 알아봅니다. 다음 섹션에서는 결정 트리를 결합하여 결정 숲을 학습하는 방법을 알아봅니다.
YDF에서 CART 학습기를 사용하여 개별 결정 트리 모델을 학습합니다.
# https://ydf.readthedocs.io/en/latest/py_api/CartLearner import ydf model = ydf.CartLearner(label="my_label").train(dataset)
모델
결정 트리는 트리 모양으로 계층적으로 구성된 '질문' 모음으로 구성된 모델입니다. 이러한 질문을 일반적으로 조건, 분할 또는 테스트라고 합니다. 이 클래스에서는 '조건'이라는 용어를 사용합니다. 리프가 아닌 각 노드에는 조건이 포함되고 각 리프 노드에는 예측이 포함됩니다.
식물학적 나무는 일반적으로 뿌리가 아래쪽에 있으면서 자라지만 결정 트리는 일반적으로 뿌리 (첫 번째 노드)가 맨 위에 표시됩니다.
그림 1. 간단한 분류 결정 트리 녹색의 범례는 결정 트리의 일부가 아닙니다.
결정 트리 모델의 추론은 조건에 따라 예시를 루트 (상단)에서 리프 노드 (하단) 중 하나로 라우팅하여 계산됩니다. 도달한 리프의 값이 결정 트리의 예측입니다. 방문한 노드 집합을 추론 경로라고 합니다. 예를 들어 다음과 같은 지형지물 값을 고려해 보겠습니다.
num_legs | num_eyes |
---|---|
4 | 2 |
예측 결과는 dog입니다. 추론 경로는 다음과 같습니다.
- num_legs ≥ 3 → 예
- num_eyes ≥ 3 → 아니요
그림 2 예시 *{num_legs : 4, num_eyes : 2}*에서 리프 *dog*로 이어지는 추론 경로입니다.
이전 예에서 결정 트리의 리프에는 분류 예측이 포함됩니다. 즉, 각 리프에는 가능한 종 집합 중 하나의 동물 종이 포함됩니다.
마찬가지로 결정 트리는 리프에 회귀 예측 (숫자 값)을 라벨링하여 숫자 값을 예측할 수 있습니다. 예를 들어 다음 결정 트리는 동물의 귀여움 점수를 0~10 사이의 숫자로 예측합니다.
그림 3. 수치 예측을 실행하는 결정 트리입니다.