We48을 사용하여 J48 (C4.5) 의사 결정 트리를 성공적으로 작성했습니다. 이제는 내 기능이 얼마나 효과적인지 중요한지 평가하고 싶습니다.Weka 내장 의사 결정 트리에서 기능 중요성을 찾는 방법
한 가지 확실한 방법은 모든 기능을 반복하고 한 번에 하나씩 제거하고 매번 분류 테스트를 다시 실행하여 분류 정확도가 가장 많이 떨어지는 기능을 확인하는 것입니다. 그러나 이는 피쳐 간의 상호 의존성을 숨길 수 있습니다.
그러나 C4.5 알고리즘을 이해하는 데 기반한 다른 접근 방식을 생각하고 있습니다. 트리의 각 분할은 최대 정보 획득 결정을 기반으로하기 때문에 트리의 루트에 가까운 피쳐에서의 분할은 트리의 다른 피쳐가 더 낮은 스플릿보다 정보가 더 많다는 것을 의미해야합니다. 따라서 트리 내의 여러 가지 분할에서 발생하는 주어진 피쳐 F에 대해 루트에서 F의 평균 거리를 계산할 수 있습니다. 그런 다음 평균 거리별로 모든 기능의 순위를 매길 수 있으며 가장 낮은 평균이 가장 가치있는 기능입니다. 이것이 올바른 접근 방법일까요?
평균 거리를 루트 노드에서 일하지 않을 수 있습니다해야하기 때문에 이것은 계산 비용이
이는 정보 획득의 양이 트리의 레벨에서 일정하지 않기 때문에 좋은 척도입니다. 특정 지형지 물에 해당하는 모든 지사에 대한 정보 게인을 합산하는 것이 더 좋을 것입니다. 지사에있는 샘플 수로 각 지사에서의 가중치를 가중합니다. – bogatron
Weka는 각 스플릿에서 정보 획득에 대한 데이터를 제공합니까? 출력 텍스트 파일에 표시되지 않습니다. – stackoverflowuser2010
Weka가 정보 이득을 명시 적으로 저장하는지 모르겠지만 각 노드에서 관측치/샘플 수를 알면 직접 계산할 수 있습니다. 기본 트리 시각화가 각 노드에서 샘플 수를 볼 수있는 옵션을 제공하는지는 모르지만 그 정보를 표시하는 플러그인은 http : //weka.wikispaces입니다.com/Explorer + tree + visualization + plugins – bogatron