AI 기초
결정 트리란 무엇인가?
decision tree는 if‑then 규칙의 연속을 적용하여 예측을 수행하는 감독 학습 모델입니다. 각 내부 노드는 특성을 테스트하고, 각 가지는 그 테스트의 결과를 나타내며, 각 리프는 클래스 예측, 확률 또는 수치 값을 생성합니다.
결정 트리는 분류와 회귀에 모두 사용됩니다. 실용성이 큰 이유는 비선형 상호작용을 표현할 수 있고, 전처리 요구가 비교적 적으며, 사람이 검토할 수 있는 경로를 제공하기 때문입니다. 그러나 약점은 불안정성으로, 학습 데이터의 작은 변화에도 다른 트리가 생성될 수 있습니다.
핵심 요점
- 트리는 특성 공간을 재귀적으로 분할하지만, 모든 학습 관측치를 완전히 분리할 필요는 없습니다.
- 분류에서는 일반적으로 Gini 불순도 또는 엔트로피를 사용하고, 회귀에서는 예측 오차 또는 분산을 감소시키는 기준을 사용합니다.
- 깊이, 최소 리프 크기, 그리고 가지치기를 통해 복잡도와 과적합을 제어합니다.
- 랜덤 포레스트와 그래디언트 부스팅 트리는 다수의 트리를 결합하여 예측력을 향상시킵니다.

결정 트리가 예측을 수행하는 방법
예를 들어 모델이 기계가 고장 날 가능성을 예측한다고 가정해 보겠습니다. 루트 노드는 진동이 학습된 임계값을 초과하는지를 물을 수 있습니다. 이어지는 가지는 작동 온도를 테스트할 수 있습니다. 관측값은 동일한 경로를 따라 이동한 학습 예시들 중에서 추정된 고장 확률을 포함한 리프에 도달합니다.
회귀의 경우, 해당 리프는 그 영역에 속한 관측값들의 평균 목표값을 반환합니다. 분류의 경우, 다수 클래스 또는 클래스 빈도 분포를 반환할 수 있습니다. 하나의 리프에 많은 관측값이 포함될 수 있으며, 학습 데이터를 완전히 분리하는 것은 일반적으로 바람직하지 않습니다. 왜냐하면 과적합 트리를 만들 위험이 있기 때문입니다.
트리가 분할을 선택하는 방법
학습 과정에서는 후보 특성과 임계값을 고려한 뒤, 정의된 목표를 가장 많이 개선하는 분할을 선택합니다. 개선 정도는 각 자식 노드로 이동하는 관측값 수에 가중되어야 합니다.
Gini 불순도
분류에서는 Gini 불순도가 노드 내 클래스가 얼마나 섞여 있는지를 측정합니다:
Gini = 1 - Σ p(k)²
하나의 클래스만 포함된 노드는 불순도가 0입니다. 후보 분할은 자식들의 가중 불순도가 부모보다 낮을 때 유용합니다.
엔트로피와 정보 이득
엔트로피는 클래스 불확실성을 측정하는 또 다른 지표입니다:
Entropy = -Σ p(k) log₂ p(k)
정보 이득은 부모 엔트로피에서 가중 자식 엔트로피를 뺀 값입니다. Gini와 엔트로피는 종종 비슷한 트리를 만들지만, 항상 동일한 결과를 내지는 않습니다.
회귀 손실
회귀 트리는 일반적으로 제곱 오차, 절대 오차 또는 기타 회귀 기준을 감소시키는 분할을 선택합니다. 각 리프는 해당 영역 내 학습 목표값을 기반으로 값을 예측합니다.
CART 및 기타 트리 알고리즘
CART(Classification and Regression Trees)는 이진 분할을 사용하며 scikit-learn의 결정 트리 구현 등에서 널리 쓰입니다. 다른 알고리즘으로는 ID3, C4.5, C5.0이 있습니다. 구현마다 지원하는 분할 유형, 결측값 처리 방식, 가지치기 및 목표 함수가 다릅니다.
범주형 변수는 인코딩, 직접 부분집합 분할, 혹은 구현별 특수 처리가 필요할 수 있습니다. 결측값은 평균 대체나 학습된 기본 방향, 대리 분할 등을 통해 처리됩니다. 각 라이브러리의 동작 방식을 이해하는 것이 중요하며, 모든 트리 구현이 동일하게 동작한다고 가정해서는 안 됩니다.
트리 복잡도 제어
깊은 트리는 잡음을 외우게 됩니다. 일반적인 제어 방법은 다음과 같습니다:
- 최대 깊이: 예측 경로의 길이를 제한합니다.
- 분할 또는 리프당 최소 샘플 수: 너무 작은 영역을 방지합니다.
- 최소 불순도 감소: 충분한 이득을 제공하는 분할만 허용합니다.
- 최대 리프 수: 전체 복잡도를 제한합니다.
- 비용-복잡도 가지치기: 개선 효과가 복잡도 증가를 정당화하지 못하는 가지를 제거합니다.
가지치기는 무작위 삭제가 아니라 구조화된 최적화 과정이며, 하이퍼파라미터는 검증 데이터나 교차 검증을 통해 선택하고 최종 테스트 세트는 그대로 두어야 합니다.
강점 및 제한점
결정 트리는 특성 스케일링 없이도 상호작용과 임계값 효과를 모델링할 수 있습니다. 수치형 입력은 물론 구현에 따라 범주형 입력도 허용됩니다. 예측 속도가 빠르고, 작은 트리는 시각화가 용이합니다.
하지만 단일 트리는 분산이 크고, 분할 근처에서 예측이 급격히 변할 수 있으며, 가능한 분할점이 많은 특성을 선호하는 경향이 있습니다. 회귀에서는 외삽 성능이 좋지 않아 관측되지 않은 영역에서도 리프가 학습된 값을 반환합니다. 큰 트리는 다른 복잡한 모델만큼 이해하기 어려울 수 있습니다.
단일 트리에서 앙상블로
앙상블 학습은 여러 모델을 결합합니다. 랜덤 포레스트는 재표본 추출된 관측값과 특성 부분집합을 이용해 다수의 트리를 학습한 뒤 예측을 평균합니다. 그래디언트 부스팅은 트리를 순차적으로 구축하여 각 새로운 트리가 남은 오류를 보정하도록 합니다. 이러한 방법은 일반적으로 단일 트리보다 성능이 뛰어나지만, 해석 가능성이 감소하고 계산 비용이 증가합니다.
트리 혹은 앙상블에서 도출된 특성 중요도는 신중히 해석해야 합니다. 불순도 기반 중요도는 편향될 수 있으며, 특성 중요도가 인과 관계를 증명하지는 않습니다. 순열 중요도, 부분 의존성 도구, 도메인 검토 등을 통해 추가적인 맥락을 제공해야 합니다.
트리가 분할과 예측을 학습하는 방식
결정 트리는 특성 공간을 재귀적으로 분할합니다. 각 노드에서 학습 알고리즘은 후보 특성 임계값 또는 범주 파티션을 평가하고, 분류의 경우 Gini 불순도나 엔트로피, 회귀의 경우 제곱 오차와 같이 불순도를 가장 많이 감소시키는 분할을 선택합니다. 리프는 해당 리프에 도달한 학습 관측값을 기반으로 클래스 분포 또는 수치 예측을 저장합니다. 탐욕적 분할은 계산적으로 실용적이지만 전역 최적 트리를 보장하지 않으며, 샘플링 차이나 동점 처리 방식에 따라 서로 다른 구조가 생성될 수 있습니다.
연속형, 순서형, 범주형 및 결측 특성은 명시적인 처리가 필요합니다. 원-핫 인코딩은 많은 후보 분할을 만들 수 있고, 네이티브 범주형 방법은 순서 통계량을 사용할 수 있지만 누수 방지 구현이 필요합니다. 트리는 스케일링을 요구하지 않지만 고카디널리티 변수를 선호하고 작은 그룹을 분리할 수 있습니다. 깊이, 최소 리프 크기, 최소 불순도 감소, 비용-복잡도 가지치기는 분산을 제어합니다. 검증 데이터를 사용해 선택하고, 캘리브레이션을 평가해야 합니다. 왜냐하면 소수 사례에 기반한 리프 확률은 극단적이고 불안정할 수 있기 때문입니다.
해석, 실패 모드 및 프로덕션 활용
루트에서 리프까지의 경로는 하나의 모델 예측에 대한 정확한 규칙이지만, 자동으로 인과 설명이 되는 것은 아닙니다. 상관된 변수는 서로 대체될 수 있고, 작은 데이터 변화가 상위 분할을 바꿀 수 있으며, 겉보기 간단한 경로가 편향된 라벨에 의존할 수 있습니다. 불순도 기반 전역 특성 중요도는 오해를 불러일으킬 수 있으며, 순열 중요도, 부분 의존성, 반사실 검증 등이 추가적인 맥락을 제공하지만 자체 가정이 존재합니다. 불확실성을 보고하고, 제시된 규칙이 독립 데이터와 관련 서브그룹에서 유지되는지 테스트해야 합니다.
단일 트리는 투명성, 낮은 지연 시간, 적당한 비선형 구조가 중요한 경우에 유용하지만, 앙상블이 일반적으로 더 강력한 예측 성능을 제공합니다. 경계 행동, 희귀 카테고리, 결측값, 학습 범위 외 입력을 검증하십시오. 내보낸 규칙은 학습 전처리와 수치 비교를 정확히 재현해야 합니다. 리프 점유율, 출력 분포, 오류, 신생 카테고리를 모니터링하십시오. 많은 신규 사례가 작은 혹은 이전에 비어 있던 영역으로 라우팅될 경우, 전체 드리프트가 작아도 검토를 트리거해야 합니다. 잘못된 스키마에 대한 대체 경로를 유지하고, 모든 가지치기 또는 임계값 결정 과정을 문서화하십시오.
실용적인 예시: 해석 가능한 대출 triage 트리
대출 기관은 불완전한 신청서를 수동 검토 대상으로 우선순위를 정하기 위해 트리를 사용하며, 신용 승인·거부 판단에는 사용하지 않습니다. 목표는 문서화된 완전성 결과이며, 접수 시점에 사용할 수 있는 특성만 포함하고 이후 의사결정은 제외합니다. 시간에 따른 검증은 얕은 가지치기 트리와 규칙, 로지스틱 회귀를 비교합니다. 최소 리프 크기는 소수 신청자에 기반한 규칙 생성을 방지하고, 캘리브레이션 및 클래스별 오류는 채널 및 보호 그룹별로 보고됩니다.
검토자는 정확한 경로와 원본 값을 확인하고 오류 데이터를 수정하거나 라우팅을 재조정할 수 있습니다. 조직은 상관된 프록시와 반사실 변화를 테스트하고, 리프 점유율 및 결측값을 모니터링하며, 작은 리프로 급증하는 트래픽을 데이터 품질 사고로 간주합니다. 정책 변화는 새로운 모델 버전과 검증을 만들며, 문서화되지 않은 분할 편집은 하지 않습니다. 사용이 접근성과 부담에 영향을 미치므로, 신청자는 인간 채널을 제공받고 트리는 신용도에 대한 인과 설명으로 제시되지 않습니다.
구현 증거 및 운영 준비
프로덕션 의사결정은 성공적인 시연보다 더 많은 것을 요구합니다. 의도된 사용자, 운영 환경, 입력·출력, 의존성, 소유자, 각 중요한 실패의 결과를 정의하십시오. 튜닝 전에 재현 가능한 기준선과 버전 관리된 평가 세트를 구축하십시오. 일반 사례, 경계 조건, 형식 오류·결측 입력, 분포 이동, 의존성 장애, 오용, 그리고 소외될 가능성이 높은 그룹·환경을 테스트하십시오. 작업 품질을 캘리브레이션·불확실성, 지연, 처리량, 자원 비용, 접근성, 프라이버시, 보안과 함께 측정하십시오. 모든 변환·임계값을 기록해 독립 검토자가 결과를 재현하고 증거와 프로토타입을 구분할 수 있도록 하십시오.
출시 전에는 릴리스, 예외, 변경, 롤백, 폐기 권한을 지정하십시오. 단계적 롤아웃을 사용하고 안전한 대체 경로를 유지하며, 고의적인 실패 주입을 통해 모니터링을 검증하십시오. 운영 텔레메트리는 입력 품질, 출력 동작, 모델·규칙 버전, 의존성 상태, 인간 재조정, 확인된 결과를 보여주되 불필요한 민감 데이터를 수집하지 않아야 합니다. 알림 임계값과 대응 책임자를 정의하고, 배포 후 실제 증거를 검토하십시오. 데이터 소스·사용자·모델·벤더·정책·하드웨어·목표가 변경될 때마다 재평가하십시오. 유지 관리되는 시스템은 복구, 사고 학습, 삭제·보존 절차, 그리고 비활성화·교체 시점을 문서화해야 합니다.












