C4.5는 기계 학습 및 데이터 마이닝의 분류 문제에 사용되는 일련의 알고리즘입니다. 그 목표는 지도 학습입니다. 데이터 세트가 주어지면 그 안의 각 튜플은 속성 값 세트로 설명될 수 있으며 각 튜플은 상호 배타적인 카테고리의 특정 카테고리에 속합니다. C4.5의 목표는 학습을 통해 속성값에서 카테고리까지의 매핑 관계를 찾는 것이며, 이 매핑을 통해 카테고리를 알 수 없는 새로운 개체를 분류할 수 있습니다.
C4.5는 ID3를 기반으로 J.Ross Quinlan이 제안했습니다. ID3 알고리즘은 의사결정 트리를 구성하는 데 사용됩니다. 의사결정 트리는 순서도와 유사한 트리 구조로, 각 내부 노드(리프가 아닌 노드)는 속성에 대한 테스트를 나타내고, 각 분기는 테스트 출력을 나타내며, 각 리프 노드는 클래스 레이블을 저장합니다. 결정 트리가 구축되면 주어진 클래스 레이블이 없는 튜플에 대해 루트 노드에서 리프 노드까지의 경로가 추적되고 리프 노드는 튜플에 대한 예측을 저장합니다. 의사결정 트리의 장점은 도메인 지식이나 매개변수 설정이 필요하지 않으며 탐색적 지식 발견에 적합하다는 것입니다.
결정 트리는 분류 문제에서 특성을 기준으로 인스턴스를 분류하는 과정을 트리 구조로 나타냅니다. 학습 시 학습 데이터를 사용하여 손실 함수 최소화 원칙에 따라 결정 트리 모델을 구축하고, 예측 시 결정 모델을 사용하여 새 데이터를 분류합니다.
의사결정 트리는 방향성 에지와 세 가지 유형의 노드를 포함하여 특징 속성을 분류하여 샘플을 분류하는 트리 구조입니다.
위 그림은 의사결정의 예(2개 교차)를 보여줍니다. 나무. 의사결정 트리에는 다음과 같은 특징이 있습니다.
의사결정 트리 학습의 핵심은 훈련 세트에서 분류 규칙 세트를 유도하는 것입니다. 그러나 속성 분할 순서가 다르기 때문에 결과 결정 트리도 달라집니다. 훈련 데이터에 잘 맞을 뿐만 아니라 알려지지 않은 데이터도 잘 예측하는 의사결정 트리를 어떻게 얻을 수 있을까요?
먼저 두 가지 문제를 해결해야 합니다.
일반적으로 의사결정 트리에는 루트 노드, 여러 내부 노드 및 여러 리프 노드가 포함되어 있으며 속성 책에 해당합니다. 각 리프 노드에 포함된 샘플 세트는 속성 테스트 결과에 따라 하위 노드로 나뉘며 루트 노드에는 완전한 샘플 세트가 포함되고 루트 노드에서 각 리프 노드까지의 경로 쌍이 결정 테스트 시퀀스를 통과합니다. . 의사결정 트리 학습의 목적은 강력한 일반화 능력을 갖춘 의사결정 트리를 생성하는 것입니다. 기본 프로세스는 아래 그림과 같이 간단하고 간단한 "분할 정복" 전략을 따릅니다.
분명히, 의사결정 트리의 생성은 재귀적인 프로세스입니다. 의사결정 트리의 기본 알고리즘에는 재귀 반환으로 이어지는 세 가지 상황이 있습니다.
두 번째 상황에서는 현재 노드를 리프 노드로 표시하고 해당 카테고리를 이 노드로 설정합니다. 세 번째 경우에는 현재 노드도 리프 노드로 표시되지만 해당 범주는 상위 노드가 가장 많은 샘플을 포함하는 범주로 설정됩니다. 이 두 사례의 처리는 본질적으로 다릅니다. 사례 2는 현재 노드의 사후 분포를 사용하는 반면, 사례 3은 현재 노드의 사전 분포로 상위 노드의 표본 분포를 사용합니다.
의사결정 트리 학습의 핵심은 최적의 분할 속성을 선택하는 방법입니다. 일반적으로 분할 프로세스가 계속됨에 따라 의사 결정 트리의 분기 노드에 포함된 샘플이 가능한 한 동일한 범주에 속하기를 바랍니다. 즉, 노드의 "순도"가 점점 더 높아지기를 바랍니다.
"정보 엔트로피"(정보 엔트로피)는 샘플 세트의 순도를 측정하는 데 가장 일반적으로 사용되는 지표입니다. 현재 샘플 집합에서 k번째 클래스 샘플의 비율을 이라고 가정하면 의 정보 엔트로피는
로 정의됩니다. 값이 작을수록 의 순도는 높아집니다.
개별 속성에 가능한 값이 있다고 가정하고 샘플 세트를 나누는 데 사용되면 분기 노드가 생성되며, 여기서 v 번째 분기 노드에는 속성의 모든 값이 포함됩니다. 위의 공식을 바탕으로 계산된 정보 엔트로피로 기록된 샘플은 서로 다른 가지 노드에 포함된 샘플 수가 서로 다르다는 점을 고려하여 가지 노드에 가중치를 부여합니다. 즉, 샘플이 많을수록 영향이 커집니다. 분기 노드이므로 속성을 사용하여 샘플 집합을 나누어 얻은 "정보 이득"을 계산할 수 있습니다.
일반적으로 정보 이득이 클수록 샘플 집합을 나누어 얻은 정보 이득을 의미합니다. "순도 향상이 클수록" 속성을 사용합니다. 따라서 정보 획득을 사용하여 의사결정 트리의 파티션 속성을 선택할 수 있습니다.
실제로 정보 획득 기준은 가능한 값이 많은 속성을 선호합니다(일련번호를 구분 속성으로 사용하는 방법과 각각의 것을 별도의 카테고리로 취급할 경우, 정보 이득은 종종 매우 높지만 이 구분은 의미가 없습니다) 이 선호도의 가능한 부작용을 줄이기 위해 유명한 C4.5 알고리즘은 정보 이득을 직접 사용하지 않고 이득 비율을 사용하여 선택합니다. 최적의 분할 속성. 이득율의 정의는 다음과 같습니다.
이득율 기준은 가능한 값 수가 더 적은 속성을 선호하므로 C4.5 알고리즘은 후보 파티션을 직접 선택하지 않습니다. 그러나 경험적 방법을 사용합니다. 먼저 후보 파티션 속성에서 평균 수준보다 높은 정보 이득을 가진 속성을 찾은 다음 가장 높은 이득률을 가진 속성을 선택합니다.
CART 의사결정 트리는 "Gini 지수"를 사용하여 분할 속성을 선택합니다. 데이터 세트의 순도는 지니 값으로 측정할 수 있습니다.
직관적으로 이는 데이터 세트에서 무작위로 선택된 두 샘플이 일관성 없는 클래스 레이블을 가질 확률을 반영합니다. 데이터 세트의 순수성이 높아집니다. 속성의 지니 지수는 다음과 같이 정의됩니다.
따라서 후보 속성 집합 중에서 분할 후 지니 지수가 가장 작은 속성을 최적의 분할 속성으로 선택합니다. 즉,
은행은 개인의 정보(직업, 연령, 소득, 교육 포함)를 사용하여 대출 의향이 있는지 판단하여 보다 목표화된 방식으로 작업을 완료할 수 있기를 바랍니다. 다음 표는 현재 은행이 보유하고 있는 정보입니다. 우리의 목표는 다음 데이터를 분석하여 사용자의 대출을 예측하는 모델을 구축하는 것입니다.
위 표에는 4가지 고객 속성이 있는데, 이러한 속성을 종합적으로 활용하여 사용자의 대출 의사를 판단하려면 어떻게 해야 할까요? 결정 트리의 방법은 매번 판단을 위해 하나의 속성을 선택하는 것입니다. 결론을 도출할 수 없는 경우 사용자 유형을 "확실히" 판단할 수 있거나 위의 속성이 사용될 때까지 계속해서 다른 속성을 선택하여 판단합니다. 예를 들어, 고객의 대출 의도를 판단하려면 먼저 고객의 직업을 기준으로 판단할 수 있으며, 결론을 내릴 수 없으면 연령 등을 기준으로 판단할 수 있습니다. 그려지다. 의사결정 트리는 위의 판단 프로세스를 구현하기 위해 그림과 같이 트리 구조를 사용합니다.
노드 복잡도의 통계로 엔트로피를 사용하여 다음 예의 정보 이득을 각각 계산합니다. 노드 선택 속성 1. 분할 결과 그림 3.2는 분할을 위한 노드 선택 속성 2의 결과를 보여줍니다. 두 속성을 분할한 후 정보 이득을 계산하여 최적의 분할 속성을 선택합니다.
속성 1
속성 2
속성 1이 속성 2보다 더 나은 분할 속성이므로 속성 1이 분할 속성으로 선택됩니다.
때문에 속성 2가 분할 속성으로 선택됩니다.
가지치기는 의사결정 트리 학습 알고리즘이 "과잉 맞춤"을 처리하는 주요 수단입니다. 결정 트리 학습에서는 훈련 샘플을 최대한 정확하게 분류하기 위해 노드 분할 프로세스가 계속 반복됩니다. 때로는 결정 트리에 너무 많은 분기가 있을 수 있습니다. 이는 훈련 샘플이 너무 잘 학습되어 훈련 세트가 되기 때문일 수 있습니다. 모든 데이터의 일부 특성과 일반적인 속성은 과적합을 초래합니다. 따라서 일부 가지를 적극적으로 제거하면 과적합 위험을 줄일 수 있습니다.
그 중 {1,2,3,6,7,10,14,15,16,17}은 테스트 세트 {4,5,8,9,11,12,13}입니다. 트레이닝 세트 세트입니다.
사전 가지치기(Pre-Pruning)는 분할 전후의 일반화 성능을 평가하는 것입니다. 생성 전후의 의사결정 트리에서 노드의 일반화 성능을 비교합니다.
2. 훈련 세트의 정보 이득을 계산하여 배꼽의 정보 이득이 가장 큰 것을 찾아 배꼽을 기준으로 나눕니다. 그리고 훈련 세트에서는 오목한 특징을 가진 좋은 멜론의 비율이 높기 때문에 오목한 특징이 좋은 멜론으로 분류되고, 약간 오목한 특징이 비율보다 좋으므로 좋은 멜론으로 표시됩니다. 배꼽으로 나눈 하위 트리의 결과는 다음과 같습니다.
분할 후 비교 결과는 다음과 같습니다.
그림에서 알 수 있듯이 사전 가지치기를 하면 많은 가지가 방지됩니다. 이는 과적합의 위험을 줄일 뿐만 아니라 훈련 시간 오버헤드와 테스트 시간도 크게 줄여줍니다. 그러나 일부 분기에서는 현재 일반화를 개선할 수 없습니다. 일반화의 일시적인 감소로 이어질 수도 있지만 이를 기반으로 한 후속 분할은 상당한 개선으로 이어질 수 있습니다. 따라서 사전 가지치기의 탐욕스러운 특성으로 인해 의사결정 트리가 과소적합될 위험이 있습니다.
사후 가지치기란 먼저 훈련 세트에서 완전한 결정 트리를 생성하는 것을 의미합니다.
표시된 노드의 분류와 각 데이터의 실제 분류를 비교하여 다음 표와 같이 정확도를 계산합니다.
검증에 대해 생성된 의사결정 트리의 정확도 set은 3/7*100%=42.9%입니다.
사전 가지치기와 사후 가지치기로 생성된 의사결정 트리를 비교하면 일반적으로 사후 가지치기가 사전 가지치기보다 더 많은 가지를 유지하는 것을 알 수 있습니다. 이는 덜 정확합니다. 병합 위험은 매우 작으므로 사후 가지치기의 일반화 성능은 종종 사전 가지치기 결정 트리로 인해 발생합니다. 그러나 사후 가지치기 과정은 아래에서 위로 가지치기를 하기 때문에 전면 가지치기보다 훈련 시간 비용이 더 많이 듭니다.