AI 기초

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

mm
Unite.AI를 Google의 선호 소스에 추가

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

의사 결정 트리는 회귀와 분류 작업을 모두 수행하는 유용한 기계 학습 알고리즘입니다. 의사 결정 트리라는 이름은 알고리즘이 데이터셋을 더 작은 부분으로 나누고, 데이터를 단일 인스턴스로 분류할 때까지 계속 나누기 때문에 붙여졌습니다. 알고리즘의 결과를 시각화하면, 카테고리가 나누어지는 방식이 트리와 많은 잎사귀를 닮았습니다.

의사 결정 트리에 대한 간단한 정의입니다. 하지만 의사 결정 트리가 어떻게 작동하는지, 그리고 그 사용 사례는 무엇인지 더 깊이 들어가보겠습니다. 의사 결정 트리가 어떻게 작동하는지, 그리고 언제 사용해야 하는지에 대한 더好的 이해는 기계 학습 프로젝트에서 이를 사용하는 데 도움이 될 것입니다.

의사 결정 트리의 형식

의사 결정 트리는 흐름도와 비슷합니다. 흐름도를 사용할 때, 시작점 또는 루트에서 시작하여 필터링 기준에 따라 다음 노드로 이동합니다. 이 과정을 반복하여 끝까지 도달합니다.

의사 결정 트리도 비슷한 방식으로 작동합니다. 트리의 내부 노드는 테스트 또는 필터링 기준입니다. 외부 노드, 즉 트리의 끝점은 데이터 포인트의 레이블입니다. 이러한 레이블을 잎사귀라고 합니다. 내부 노드에서 다음 노드로 이어지는 가지들은 특징 또는 특징의 결합입니다. 데이터 포인트를 분류하는 규칙은 루트에서 잎사귀까지의 경로입니다.

의사 결정 트리 알고리즘

의사 결정 트리는 알고리즘적 접근 방식을 사용하여 데이터셋을 개별 데이터 포인트로 나눕니다. 이 나누기는 다양한 변수 또는 데이터셋의 특징을 사용하여 수행됩니다. 예를 들어, 입력 특징으로부터 개 또는 고양이를 결정하는 경우, 데이터를 나누는 변수는 “발톱” 또는 “울음”과 같은 특징일 수 있습니다.

데이터를 가지와 잎사귀로 나누는 알고리즘은 무엇일까요? 데이터를 나누는 방법은 여러 가지가 있지만, 가장 일반적인 방법은 재귀 이진 나누기입니다. 이 방법을 사용하여 나누기 시작하면, 루트에서 시작하여 데이터셋의 특징 수를 나타내는 가능한 나누기 수를 결정합니다. 함수를 사용하여 각 가능한 나누기의 정확도를 계산하고, 정확도를 가장 적게 희생하는 나누기를 선택합니다. 이 과정은 재귀적으로 수행되며, 하위 그룹은 동일한 전략을 사용하여 형성됩니다.

나누기의 비용을 결정하는 함수를 사용합니다. 회귀 작업과 분류 작업을 위한 다른 비용 함수를 사용합니다. 두 비용 함수의 목표는 가장 유사한 응답 값을 갖는 가지 또는 가장 균일한 가지를 찾는 것입니다. 특정 클래스의 테스트 데이터가 특정 경로를 따르는 경우 이는 직관적으로 이해할 수 있습니다.

재귀 이진 나누기에서 회귀 비용 함수는 다음과 같습니다.

sum(y – prediction)^2

특정 그룹의 데이터 포인트에 대한 예측은 해당 그룹의 훈련 데이터 응답의 평균입니다. 모든 데이터 포인트를 비용 함수를 통해 실행하여 모든 가능한 나누기의 비용을 결정하고, 비용이 가장 낮은 나누기를 선택합니다.

분류 작업의 비용 함수는 다음과 같습니다.

G = sum(pk * (1 – pk))

이것은 지니 점수이며, 나누기의 효과를 측정하는 것입니다. 나누기 후 그룹에 있는 다양한 클래스의 인스턴스 수에 따라 지니 점수를 계산합니다. 즉, 나누기 후 그룹이 얼마나 혼합되어 있는지 측정합니다. 나누기가 최적일 때는 나누기 후 그룹이 한 클래스의 입력만 포함하는 경우입니다. 최적의 나누기가 생성된 경우 “pk” 값은 0 또는 1이 되고, G는 0이 됩니다. 이진 분류의 경우, 나누기 후 그룹이 50-50의 클래스 분포를 갖는 경우가 최악의 경우입니다. 이 경우 “pk” 값은 0.5이고, G도 0.5입니다.

나누기 과정은 모든 데이터 포인트가 잎사귀가 되고 분류될 때까지 계속됩니다. 그러나 트리의 성장을 조기 종료할 수 있습니다. 큰 복잡한 트리는 과적합에 취약하지만, 이를 방지하는 여러 방법이 있습니다. 과적합을 줄이는 한 가지 방법은 잎사귀를 생성하는 데 사용되는 최소 데이터 포인트 수를 지정하는 것입니다. 또 다른 방법은 트리의 최대 깊이를 제한하여, 루트에서 잎사귀까지의 경로가 얼마나 길 수 있는지 제어하는 것입니다.

의사 결정 트리를 생성하는 또 다른 과정은 가지 치기입니다. 가지 치기는 예측력이 적은 가지를 제거하여 의사 결정 트리의 성능을 향상시킵니다. 이렇게 하면 트리의 복잡성이 감소하고, 과적합의 가능성이 줄어들고, 모델의 예측력이 향상됩니다.

가지 치기를 수행할 때, 트리의 위 또는 아래에서 시작할 수 있습니다. 그러나 가지 치기의 가장 쉬운 방법은 잎사귀에서 시작하여 가장 일반적인 클래스를 포함하는 노드를 제거하려고 시도하는 것입니다. 모델의 정확도가 저하되지 않는 경우, 변경 사항을 유지합니다. 가지 치기를 수행하는 다른 기술이 있지만, 위에서 설명한 방법은 가장 일반적인 가지 치기 방법입니다.

의사 결정 트리 사용 시 고려 사항

의사 결정 트리는 분류가 필요한 경우에 유용하지만, 계산 시간이 주요 제약인 경우에 사용할 수 있습니다. 의사 결정 트리는 선택한 데이터셋에서 가장 예측력이 높은 특징을 식별하는 데 도움이 될 수 있습니다. 또한, 많은 기계 학습 알고리즘에서 데이터를 분류하는 규칙이 해석하기 어려울 수 있는 반면, 의사 결정 트리는 해석 가능한 규칙을 제공할 수 있습니다. 의사 결정 트리는 범주형 변수와 연속형 변수를 모두 사용할 수 있으므로, 다른 알고리즘보다 전처리가 덜 필요합니다.

의사 결정 트리는 연속형 속성의 값을 결정하는 경우 잘 작동하지 않습니다. 의사 결정 트리의 또 다른 한계는, 분류를 수행할 때, 훈련 예제가 적지만 클래스가 많은 경우, 의사 결정 트리가 정확하지 않을 수 있습니다.

블로거이자 프로그래머로 Machine Learning Deep Learning 주제에 전문가입니다. 다니엘은 다른 사람들이 AI의 힘을 사회적善으로 사용하는 것을 돕기를 희망합니다.