Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Decision Tree

결정 트리는 데이터에서 학습한 일련의 특성 질문을 통해 예측합니다. 분할 기준 선택, 가지치기를 통한 과적합 억제, 코드 예제를 다룹니다.

의사결정 트리는 입력 특성에 관해 "소득이 $50,000를 초과하는가?"와 같은 예/아니요 질문을 차례로 던지고, 루트에서 예측값이 담긴 리프까지 답을 따라가 예측하는 지도 학습 모델입니다. 분류 트리는 각 리프에서 클래스를 예측하고, 회귀 트리는 숫자를 예측합니다. 모든 예측은 읽기 쉬운 규칙의 연쇄로 표현되므로 트리는 설명 가능한 AI(XAI)의 표준 도구이며, 랜덤 포레스트와 그래디언트 부스팅 앙상블의 구성 요소입니다. 이러한 앙상블은 중간 규모 표 형식 데이터 세트에서 여전히 딥러닝보다 우수한 성능을 보입니다. Breiman, Friedman, Olshen, Stone의 CART 알고리즘(1984)과 Ross Quinlan의 ID3(1986) 및 C4.5(1993)는 데이터에서 트리를 학습하는 방법을 확립했습니다.

의사결정 트리의 구축 방식#

트리는 재귀적 분할을 통해 위에서 아래로 성장합니다. 각 노드에서 알고리즘은 후보 분할의 점수를 계산합니다. 각 후보는 특성과 수치형 특성의 임계값으로 이루어지며, 두 자식 노드를 가장 동질적으로 만드는 분할을 선택한 뒤 각 자식 노드에서 탐색을 반복합니다. 분류 트리는 지니 불순도, 즉 해당 노드의 클래스 비율에 따라 라벨을 무작위로 배정할 때 노드에서 임의의 샘플이 잘못 분류될 확률이나 엔트로피로 동질성을 측정합니다. 엔트로피 감소량은 정보 이득이라고 합니다. 회귀 트리는 제곱 오차를 가장 크게 줄이는 분할을 선택하며, 각 리프는 학습 샘플의 타깃 평균을 예측합니다. 노드가 순수하거나 샘플 수가 너무 적거나 최대 깊이에 도달하면 성장을 멈춥니다. 각 분할은 다음 한 단계만 살펴보므로 이 탐욕적 탐색은 양호한 트리를 빠르게 구축하지만, 최적으로 증명된 트리를 찾는 문제는 NP-hard입니다.

scikit-learn의 DecisionTreeClassifier는 최적화된 CART 버전을 구현합니다. 이 예제는 아이리스 꽃 데이터 세트에서 깊이 2인 트리를 성장시키고 학습한 규칙을 출력합니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text

iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=42)

# A depth limit keeps the tree small enough to read and less prone to overfitting
clf = DecisionTreeClassifier(max_depth=2, random_state=42)
clf.fit(X_train, y_train)

print(export_text(clf, feature_names=iris.feature_names))
print(f"Test accuracy: {clf.score(X_test, y_test):.2f}")

이 트리는 꽃잎 길이만 사용합니다. 길이가 2.45cm 이하인 꽃은 setosa(클래스 0)로 분류하고, 두 번째 임계값인 4.75cm로 versicolor(클래스 1)와 virginica(클래스 2)를 구분합니다. 이 규칙은 검증용으로 분리한 꽃의 97%를 정확히 분류합니다.

모든 분할은 이러한 형태의 임계값 규칙이며, 트리가 데이터에서 학습하거나 사람이 직접 설정할 수 있습니다. Ultralytics AIGym 운동 모니터는 YOLO26 포즈 추정 출력을 대상으로 이러한 규칙 두 개를 직접 설정합니다. 어깨, 팔꿈치, 손목 키포인트로 계산한 팔꿈치 각도가 145°를 넘으면 프레임에 "위"를 표시하고, 90° 미만으로 떨어지면 "아래"를 표시하며, 위에서 아래로 바뀔 때마다 횟수를 셉니다.

과적합과 가지치기#

모든 리프가 순수해질 때까지 성장한 트리는 잡음까지 포함해 학습 데이터를 암기하는데, 이는 과적합의 전형적인 사례입니다. 사전 가지치기는 최대 깊이나 리프당 최소 샘플 수와 같은 제한을 두어 성장을 일찍 멈춥니다. 사후 가지치기는 전체 트리를 성장시킨 다음 기여도가 낮은 가지를 제거합니다. scikit-learn은 ccp_alpha 매개변수를 통해 최소 비용 복잡도 가지치기를 구현하며, 값이 클수록 더 많이 가지치기합니다. 두 종류의 제한 모두 교차 검증으로 선택하는 하이퍼파라미터입니다.

가지치기를 한 트리도 분산이 큽니다. 학습 데이터가 조금만 달라져도 최상위 분할이 바뀌고 그에 따라 아래의 모든 분할이 달라질 수 있습니다. 앙상블은 여러 트리를 결합해 이 문제를 해결합니다. 랜덤 포레스트처럼 부트스트랩 샘플로 학습한 트리를 평균하거나, 그래디언트 부스팅처럼 이전 트리의 오류를 수정하도록 트리를 하나씩 추가합니다.

장점과 한계#

트리는 수치형 특성과 범주형 특성을 함께 처리하고, 특성 스케일링이 필요 없으며, 수작업 특성 엔지니어링 없이 상호작용과 비선형 효과를 포착하고, 몇 차례 비교만으로 예측합니다. 트리의 분할은 축 정렬 방식이므로 "지출이 소득을 초과한다"와 같은 대각선 경계는 비율 특성을 추가하지 않으면 여러 분할로 이루어진 계단형 경계가 됩니다. 회귀 트리는 각 리프에서 상수값을 예측하므로 선형 회귀와 달리 학습 데이터 범위를 벗어난 추세를 외삽할 수 없습니다.

응용 분야#

  • 신용 결정: 대출 기관은 얕은 트리와 트리 기반 스코어카드를 사용해 신청자의 위험도에 따라 분류하며, 각 결정의 근거는 소득, 신용 이력, 부채 임계값으로 추적할 수 있습니다.
  • 임상 중증도 분류: 트리 형태의 임상 의사결정 규칙은 활력 징후와 증상에 따라 환자를 분류합니다. 예를 들어 환자에게 즉각적인 영상 검사가 필요한지 판단할 수 있습니다.
  • 고객 이탈: 트리는 사용량, 이용 기간, 지원 이력에 따라 고객을 이탈 위험이 높은 그룹과 낮은 그룹으로 나누며, 각 경로는 그룹의 특성을 평이한 용어로 설명합니다.
  • 예측 유지보수: 진동, 온도, 가동 시간 특성을 사용하는 그래디언트 부스팅 트리는 다음 정비 전에 고장 날 가능성이 높은 기계를 예측합니다.
  • 랜덤 포레스트: 부트스트랩 샘플과 무작위 특성 부분집합으로 학습한 여러 트리의 평균을 구합니다. 단일 트리의 가독성을 낮추는 대신 정확도와 안정성을 높입니다.
  • XGBoost, LightGBM, CatBoost: 이전 트리의 오류를 수정하도록 트리를 하나씩 추가하는 그래디언트 부스팅 라이브러리입니다. LightGBM은 대규모 데이터 세트의 속도를, CatBoost는 기본 범주형 특성 처리를 고려해 설계되었습니다.
  • 딥러닝: 신경망은 원시 이미지, 오디오, 텍스트에서 특성을 학습하는 반면, 트리는 이미 테이블 열로 존재하는 특성을 기준으로 분할합니다.
  • 의사결정 분석 트리: 운영 연구와 비즈니스 계획에서 의사결정 트리는 분석가가 손으로 그리는 다이어그램을 뜻하기도 합니다. 의사결정 노드, 우연 노드, 보상을 사용해 기대값을 기준으로 선택지를 비교하며, 학습 데이터에서 학습하는 대신 추정 확률을 바탕으로 구축합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요