결정 포레스트 모델은 결정 트리로 구성됩니다. 결정 포레스트 학습 알고리즘 (예: 랜덤 포레스트)은 최소한 부분적으로는 결정 트리 학습에 의존합니다.
이 섹션에서는 작은 데이터 세트 예시와 단일 결정 트리를 학습시키는 방법을 학습합니다. 다음 섹션에서는 결정 트리를 결합하여 결정 포레스트를 학습시키는 방법을 알아봅니다.
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}*의 잎 *개*에서 끝나는 추론 경로입니다.
이전 예에서 결정 트리의 잎에는 분류 예측이 포함되어 있습니다. 즉, 각 리프에는 가능한 종의 집합 중 한 종의 동물이 포함되어 있습니다.
마찬가지로 결정 트리는 회귀적 예측 (숫자 값)으로 리프에 라벨을 지정하여 숫자 값을 예측할 수 있습니다. 예를 들어 다음 결정 트리는 0~10 사이의 동물의 귀여움 점수를 숫자로 예측합니다.
그림 3. 수치 예측을 하는 결정 트리