AI 101
의사 결정 트리란 무엇인가?

의사 결정 트리란 무엇인가?
의사 결정 트리는 회귀와 분류 작업 모두에 사용되는 유용한 기계 학습 알고리즘입니다. “의사 결정 트리”라는 이름은 알고리즘이 데이터를 더 작은 부분으로 나누다가 결국 데이터가 단일 인스턴스로 나누어지기까지 계속 나누는 사실에서 유래했습니다. 알고리즘의 결과를 시각화하면, 범주가 나누어지는 방식은 트리와 많은 잎사귀를 닮을 것입니다.
의사 결정 트리에 대한 간단한 정의이지만, 의사 결정 트리가 어떻게 작동하는지 더 깊이 이해해 보겠습니다. 의사 결정 트리가 작동하는 방식과 사용 사례를 더 잘 이해하면 기계 학습 프로젝트에서 언제 사용할지 알 수 있습니다.
의사 결정 트리의 형식
의사 결정 트리는 흐름図와 많이似습니다. 흐름도를 사용하려면 차트의 시작 지점 또는 루트에서 시작하여 시작 노드의 필터링 기준에 따라 어떻게回答하면 다음 가능한 노드 중 하나로 이동합니다. 이 프로세스는 끝까지 반복됩니다.
의사 결정 트리는 본질적으로 동일한 방식으로 작동하며, 트리의 모든 내부 노드는 어떤 종류의 테스트/필터링 기준입니다. 트리의 외부 노드, 즉 트리의 끝점은 데이터 포인트의 레이블이며 “잎”이라고 불립니다. 내부 노드에서 다음 노드로 이어지는 가지들은 기능 또는 기능의 결합입니다. 데이터 포인트를 분류하는 규칙은 루트에서 잎까지 실행되는 경로입니다.

의사 결정 트리 알고리즘
의사 결정 트리는 알고리즘적 접근 방식을 사용하여 다양한 기준에 따라 데이터 세트를 개별 데이터 포인트로 나눕니다. 이러한 분할은 데이터 세트의 다양한 변수 또는 기능으로 수행됩니다. 예를 들어, 입력 기능에 의해 설명되는 것이 개인지 고양이인지 결정하려는 경우, 데이터가 분할되는 변수는 “발톱” 또는 “짖음”과 같은 것일 수 있습니다.
그러면 트리를 가지와 잎으로 나누는 데 사용되는 알고리즘은 무엇일까요? 트리를 나누는 데 사용할 수 있는 여러 가지 방법이 있지만 가장 일반적인 분할 방법은 “재귀 이진 분할”이라고 하는 기술입니다. 이 분할 방법을 수행할 때, 프로세스는 루트에서 시작하며 데이터 세트의 기능 수는 가능한 분할 수를 나타냅니다. 각 가능한 분할의 정확도를 결정하는 함수가 사용되며, 분할은 정확도를 가장 적게 희생하는 기준으로 수행됩니다. 이 프로세스는 재귀적으로 수행되며 하위 그룹은 동일한 전략을 사용하여 형성됩니다.
분할의 비용을 결정하기 위해 비용 함수가 사용됩니다. 회귀 작업과 분류 작업을 위한 다른 비용 함수가 사용됩니다. 두 비용 함수의 목표는 가장 유사한 응답 값을 갖거나 가장 동질적인 가지를 갖는 가지를 결정하는 것입니다. 특정 클래스의 테스트 데이터가 특정 경로를 따르도록하고 이것은 직관적으로 의미가 있습니다.
재귀 이진 분할을 위한 회귀 비용 함수의 경우, 비용을 계산하는 데 사용되는 알고리즘은 다음과 같습니다.
sum(y – prediction)^2
특정 그룹의 데이터 포인트에 대한 예측은 해당 그룹의 훈련 데이터의 응답의 평균입니다. 모든 데이터 포인트가 실행되어 모든 가능한 분할에 대한 비용을 결정하고 가장 낮은 비용의 분할이 선택됩니다.
분류를 위한 비용 함수에 관해서는 함수는 다음과 같습니다.
G = sum(pk * (1 – pk))
이것은 Gini 점수이며, 분할의 효과를 측정하는 것으로, 분할 결과로 생성되는 그룹에 있는 다른 클래스의 인스턴스 수에 기반합니다. 즉, 분할 후 그룹이 얼마나 혼합되어 있는지 측정합니다. 최적의 분할은 분할 결과로 생성되는 모든 그룹이 단일 클래스의 입력으로만 구성된 경우입니다. 최적의 분할이 생성된 경우 “pk” 값은 0 또는 1이 되고 G는 0이 됩니다. 이진 분류의 경우 분할이 가장 나쁠 때는 클래스가 분할에서 50-50으로 나타나는 경우일 수 있습니다. 이 경우 “pk” 값은 0.5가 되고 G도 0.5가 됩니다.
분할 프로세스는 모든 데이터 포인트가 잎으로 변환되고 분류될 때까지 계속됩니다. 그러나 트리의 성장을 조기 종료시키고 싶을 수 있습니다. 큰 복잡한 트리는 과적합에 취약하지만, 이를 방지하기 위한 여러 가지 방법이 있습니다. 과적합을 줄이는 방법 중 하나는 잎을 생성하기 위해 사용할 최소 데이터 포인트 수를 지정하는 것입니다. 과적합을 제어하는 또 다른 방법은 트리를 최대 깊이로 제한하는 것입니다. 이는 루트에서 잎까지의 경로가 얼마나 길게伸びる 수 있는지 제어합니다.
의사 결정 트리를 생성하는 또 다른 프로세스는 프루닝입니다. 프루닝은 예측력이 적거나 모델에 중요하지 않은 기능을 포함하는 가지를 제거하여 의사 결정 트리의 성능을 향상시킬 수 있습니다.这样하면 트리의 복잡성이 줄어들고 과적합할 가능성이 줄어들며 모델의 예측 유틸리티가 향상됩니다.
프루닝을 수행할 때, 프로세스는 트리의 상단 또는 하단에서 시작할 수 있습니다. 그러나 프루닝하는 가장 쉬운 방법은 잎에서 시작하여 해당 잎 내에서 가장 일반적인 클래스를 포함하는 노드를 삭제하려고 시도하는 것입니다. 모델의 정확도가 저하되지 않는 경우 변경 사항이 유지됩니다. 프루닝하는 다른 기술이 있지만, 위에서 설명한 방법 – 오류 감소 프루닝 – 는 의사 결정 트리 프루닝에서 가장 일반적인 방법입니다.
의사 결정 트리 사용을 위한 고려 사항
의사 결정 트리는 분류가 수행되어야 하지만 계산 시간이 주요 제약인 경우에 자주 유용합니다. 의사 결정 트리는 선택한 데이터 세트에서 가장 예측력이 높은 기능을 명확하게 할 수 있습니다. 또한, 많은 기계 학습 알고리즘에서 데이터를 분류하는 데 사용되는 규칙이 해석하기 어려울 수 있는 반면, 의사 결정 트리는 해석 가능한 규칙을 제공할 수 있습니다. 의사 결정 트리는 범주형 변수와 연속형 변수 모두를 사용할 수 있으므로, 한 가지 유형의 변수만 처리할 수 있는 알고리즘과 비교하여 전처리가 덜 필요합니다.
의사 결정 트리는 연속 속성의 값을 결정할 때 잘 작동하지 않습니다. 의사 결정 트리의 또 다른 제한은 분류를 수행할 때 훈련 예가 적지만 클래스가 많은 경우 의사 결정 트리가 정확하지 않을 수 있습니다.










