Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

의사결정 트리를 구성하는 방법은 무엇입니까?

<시간/>

의사 결정 트리는 각 내부 노드가 속성에 대한 테스트를 나타내고, 각 부서가 테스트 결과를 정의하고, 리프 노드가 클래스 또는 클래스 분포를 설명하는 순서도와 같은 트리 메커니즘입니다. 트리에서 가장 큰 노드는 루트 노드입니다.

의사 결정 트리를 구성하는 문제는 재귀적으로 정의할 수 있습니다. 먼저 루트 노드에 배치할 속성을 선택하고 가능한 각 값에 대해 하나의 분기를 만듭니다. 이렇게 하면 속성의 각 값에 대해 하나씩 예제 집합을 하위 집합으로 나눕니다. 부서에 도달하는 인스턴스만 활용하여 모든 지점에 대해 절차를 재귀적으로 반복할 수 있습니다. 노드의 일부 인스턴스가 유사한 분류를 가지고 있다면 트리의 해당 요소 생성을 중지하십시오.

우리가 사용할 순도 측정은 정보라고 하며 비트라는 단위로 측정됩니다. 트리의 각 노드와 관련하여 인스턴스가 해당 노드에 도달한 경우 새 인스턴스를 예 또는 아니오로 분류해야 하는지 여부를 지정하는 데 필요한 예상 정보 양을 나타냅니다.

가지치기는 의사 결정 트리의 크기를 줄이는 절차입니다. 트리의 크기를 설명하거나 전력을 거의 제공하지 않는 트리 영역을 제거하여 과적합의 위험을 줄이는 데 사용됩니다. 가지치기(Pruning)는 훈련 데이터에서 노이즈나 이상치(outlier)로 인해 이상을 따라가는 부서를 잘라내어 제공하고, 트리의 일반화 효과를 향상시키는 방법으로 초기 트리를 제공한다.

몇 가지 방법은 통계적 측정을 사용하여 가장 신뢰할 수 없는 부서를 제거하는 경우가 많으며, 그 결과 자주 더 빠르게 분류하고 독립적인 테스트 데이터를 정확하게 분류하는 트리 기능이 향상됩니다.

의사결정 트리 학습을 위한 알고리즘

알고리즘 − 주어진 교육 정보에서 의사 결정 트리를 만듭니다.

입력 - 이산 값 속성으로 설명된 훈련 샘플, 샘플; 학생 속성 세트, 속성 목록.

출력 − 의사 결정 트리.

방법

  • 노드 생성 N;

  • 샘플이 동일한 클래스인 경우 C 따라서

  • 클래스 C로 레이블이 지정된 리프 노드로 N을 반환

  • 속성 목록이 null이면

  • 샘플에서 가장 빈번한 클래스로 레이블이 지정된 리프 노드로 N을 반환합니다. // 다수결

  • 속성 목록 중에서 정보 이득이 가장 큰 속성인 test-attribute를 선택합니다.

  • 테스트 속성으로 노드 N에 레이블을 지정합니다.

  • 알려진 각 값에 대해 ai of test-attribute // 샘플을 분할합니다.

  • test-attribute=ai 조건에 대해 노드 N에서 분기 성장 .

  • 하자i test-attribute=ai인 샘플의 샘플 세트입니다. .

  • si인 경우 비어 있으면

  • 샘플에서 가장 일반적인 클래스로 레이블이 지정된 리프에 연결할 수 있습니다.

  • 그렇지 않으면 의사 결정 트리 생성( si )에서 반환된 노드를 연결합니다. , 속성 목록 - 테스트 속성)