2012-06-29 3 views
2

WEKA에서 SVM을 사용하여 훈련 된 모델로 분류되어야하는 인스턴스로 코드를 디버그하려고 할 때, 먼저 테스트 인스턴스를 분류하기 위해 classifyInstance()에 들어가고, 이 메서드는 distributionforinstance() 메서드를 호출합니다. distributionforinstance() 메소드 안에는 classifyinstance() 메소드를 다시 호출하는 것이 있습니다.WEKA 분류 및 분배 인스턴스 메소드

이 두 가지 방법이 서로를 호출하는 경우 닭고기 계란 종류가 아닌가요? 여기서 어떤 일이 벌어지고 있습니까?

+0

나는 분류자를 쓸 당시에 모든 것이 OK였습니다. 마음은 추상적 인 방법이고 구현에서 그 중 하나를 재정의한다고 가정합니다. 분류 프로그램이 분배를 리턴하면 WEKA는 수퍼 클래스의 classifyInstance 메소드를 사용하여 분배를 기반으로 최상의 선택 만 할 수 있습니다. 내가 틀렸을 수도 있습니다. 주제를 다룬 이후로 오랜 시간이 걸렸습니다. – Rekin

답변

1

Rekin의 의견은 정확 :

그냥 Classifier에서 파생 된 경우

, 당신은 classifyInstance()distributionforinstance()의 기본 구현을 상속. 작동시키기 위해서는이 중 적어도 하나를 구현해야합니다.

코드를 디버깅 할 때 디버거가 특정 SVM 구현 대신 추상 클래스 Classifier으로 점프했을 수 있습니다.

0

대개 (항상 그런 것은 아니지만) distributionForInstance는 회귀 분석에 사용되는 반면 classifyInstance는 분류 연구에 사용됩니다. 물론 distributionForInstance 명령을 분류에 사용할 수 있지만이 코드에는 몇 줄 더 많은 코드가 필요합니다.

나는 강력하게 this post을 읽고이 GitHub 프로젝트 on your local environment을 실행합니다.

관련 문제