의사결정나무는 트리 형태의 다이어그램 또는 모델을 말하며, 입력 변수의 공간을 겹치지 않는 영역으로 나눈 후 각 영역의 평균(mean) 또는 최빈값(mode)을 이용하여 목표값을 예측하는 모델입니다.
회귀 문제는 대상 변수가 연속적(실수)임을 의미합니다.
분류 문제는 대상 변수가 연속성이 없고 범주형 변수인 경우와 관련이 있습니다.
분류 알고리즘 중 가장 대표적인 결정 트리는 대상 데이터를 비용 함수를 최소화하는 기능으로 나누고 해당 값에 대해 예/아니오 질문에 답하는 알고리즘입니다.
이때 데이터의 분할 형태가 나무의 가지 모양과 닮아서 의사결정 트리(decision tree)라고 한다.
노드는 질문 또는 답변을 포함하는 결과입니다.
나무는 뿌리가 있어야 합니다.
노드에도 동일하게 적용됩니다. 노드에도 시작점이 있어야 합니다.
시작점이 되는 노드를 루트 노드라고 합니다.
그리고 마지막 노드를 끝 노드라고 합니다.
중간 노드는 내부 노드라고 하며 아직 끝까지 분기되지 않은 노드입니다.
의사결정나무의 가장 큰 장점은 회귀와 분류 모두에 적용할 수 있다는 것입니다.
회귀 및 분류 문제의 공통점은 “비용 함수”를 최소화하는 방식으로 데이터를 처리하는 것입니다.
즉, 분류 문제의 비용 함수는 불순물이고 회귀 문제의 비용 함수는 mse입니다.
불순물은 서로 다른 범주가 혼합된 정도를 나타냅니다.
즉, 오염은 데이터 분할의 특징과 분할점을 찾는 기준이 된다.
오염에는 지니 오염과 엔트로피의 두 가지 유형이 있습니다.
지니 공해는

여기서 p = 순도(수 p_i / 총 수).

즉, 지니불순도가 낮을수록 순도가 높다.
엔트로피는 임의의 변수 또는 분포가 얼마나 불확실하거나 임의적인지를 측정한 것입니다.
엔트로피는 랜덤 변수 정보 집합의 예상 값으로 정의됩니다.
엔트로피를 이해하지 못해서 Wikipedia를 검색했습니다.
엔트로피는 “상태의 불확실성” 또는 동등한 의미에서 “정보의 평균량”을 의미합니다.
이 용어를 직관적으로 이해하려면 정치에서의 선거를 생각해 보십시오. 일반적으로 이러한 선거는 선거 결과를 모르기 때문에 실시됩니다. 즉, 선거의 결과는 상대적으로 “불확실”합니다. 그리고 실제로 선거를 실시하고 선거 결과를 받는 것은 우리에게 “새로운 정보”를 제공합니다. 이것은 선거 결과의 엔트로피가 크다고 말하는 것과 같다. 이제 첫 번째 선거 후에 두 번째 선거가 열린다고 가정합니다. 우리는 이미 첫 번째 선택의 결과를 알고 있기 때문에 두 번째 선택의 결과를 예측할 수 있으며 두 번째 선택 결과의 엔트로피는 첫 번째 선택의 엔트로피보다 작습니다.
엔트로피가 낮을수록 데이터 세트의 불확실성이 낮고 이를 기반으로 의사 결정 트리가 속성을 선택하고 트리를 구성합니다. 엔트로피가 낮을수록 데이터 세트의 불확실성이 낮고 이를 기반으로 의사 결정 트리가 속성을 선택하고 트리를 구성합니다. 각 세분화 후에는 효율적인 분류 또는 회귀를 수행할 수 있도록 엔트로피 감소(정보 획득)를 최대화하는 속성이 선택됩니다.
(노드 A (엔트로피))
↙ ↘
(노드 B (엔트로피)) (노드 C (엔트로피))
노드 A는 엔트로피를 기반으로 데이터를 노드 B와 노드 C로 분할합니다. 이 과정은 엔트로피가 0이 될 때까지 반복됩니다.
분류는 마지막 노드에서 대상 값 중 가장 일반적인 값을 예측 값으로 반환합니다.
회귀는 마지막 노드에서 대상 값의 평균을 예측 값으로 반환합니다.
의사 결정 트리 의사 결정 프로세스는 오류 기능을 최소화하는 것입니다.
최적화 관점에서 목적 함수는 오류 함수이며 최소화로 볼 수 있습니다.
이를 위해 경사하강법을 생각했는데 경사하강법은 연속 함수에서 최소값을 찾는 방법입니다.
결정 트리는 이산 값으로 분류를 수행하지만 경사 하강법을 사용하여 분류 기준을 찾는 것이 적합하지 않음을 알 수 있습니다.
따라서 결정 트리는 그리디 알고리즘을 사용하여 최적의 분류 기준을 찾습니다.
탐욕 알고리즘은 가능한 모든 경우를 고려하는 대신 현재 노드에서 가장 적절한 결정 기준을 선택하는 분기 절차입니다. 이 방법은 가능한 모든 경우를 살펴보는 것보다 시간이 덜 걸리지만 정확하지 않은 답을 제공하는 단점이 있습니다.
결정 트리는 너무 많은 분기점으로 인한 과적합 문제를 해결하기 위해 가지치기라는 기술을 사용합니다.
다시 자르다:사후 가지치기는 먼저 전체 데이터 세트를 사용하여 의사 결정 트리를 구축한 다음 이를 가지치기하는 방법입니다. 모든 데이터를 사용하기 때문에 의사결정 트리를 구축할 때 과적합이 발생할 수 있습니다. 이를 해결하기 위해 불필요한 분기점을 제거하는 가지치기(Pruning)를 수행한다.
가지치기를 할 때 검증 세트를 사용하여 모델의 성능을 평가합니다. 모델의 성능이 좋지 않으면 의사 결정 트리의 복잡성을 줄이기 위해 분기점이 제거됩니다. 이 과정을 반복하여 최적의 의사결정나무를 찾는다.
사전 가지치기(pre-pruning): 사전 가지치기는 의사결정 트리를 구축할 때 분기를 결정하는 기준을 미리 정하고 분기에서 기준에 맞지 않는 노드를 제한하는 방법입니다. 이것은 결정 트리의 복잡성을 줄이고 과적합 문제를 해결합니다.
사전 절단에 사용되는 기준은 다음과 같습니다.
- 최대 깊이: 최대 깊이는 의사결정 트리의 최대 분기 깊이를 결정합니다. 모델의 복잡성을 제어하는 데 사용됩니다. 최대 깊이를 높게 설정하면 모델의 복잡도가 증가하고 작게 설정하면 모델의 복잡도가 감소합니다.
- 시트당 최소 패턴: 최소 샘플 수는 분기할 수 있는 최소 샘플 수를 결정합니다. 이 값보다 작은 노드는 분기하지 않습니다. 최소 샘플 수를 크게 설정하면 모델의 복잡도가 낮아지고, 최소 샘플 수를 작게 설정하면 모델 복잡도가 높아집니다.
- 최소 정보 이득: 분기 전후의 엔트로피 차이를 계산하여 얻은 값입니다.
- 최소 불순물 제거: 오염감소량을 산출하여 해당 값이 일정 기준치 이상일 경우에만 분기를 취하는 방식이다.
또한 의사결정 트리에서 사용되는 매개변수가 있습니다.
- 분할당 최소 샘플 최소 분할 수는 노드가 분할되는 최소 샘플 수를 결정합니다. 이 값보다 작은 노드는 분할되지 않습니다. 최소 파티션 개수를 크게 설정하면 모델의 복잡도가 낮아지고, 최소 파티션 개수를 작게 설정하면 모델 복잡도가 높아진다.
- 클래스 가중치: 클래스 가중치는 각 클래스에 서로 다른 가중치를 할당하여 모델 학습을 사용자 지정하는 데 사용됩니다. 클래스 불균형 문제를 해결하는 데 사용됩니다.
- 임의 상태 임의 상태는 모델 교육에서 임의성을 조정하는 데 사용됩니다. 동일한 임의 상태를 사용하면 모델 학습 결과가 일정하게 유지됩니다.
