검색 쿼리를 {Artist, Actor, Politician, Athlete, Facility, Geo, Definition, QA} 클래스 중 하나로 분류하는 분류자를 만들었습니다. 두 개의 CSV 파일이 있습니다. 하나는 분류 자 (300 개의 질의 포함)를 훈련하기위한 것이고 다른 하나는 분류 자 (현재 약 200 개의 질의 포함)를 테스트하기위한 것입니다. 트레이닝 셋과 테스트 세트를 사용하여 weka 지식 흐름으로 분류자를 평가할 때, 대부분의 클래스는 꽤 좋은 정확도에 도달합니다. 웨카 지식 흐름 교육/시험 상황의 설정 :weka의 분류는 명목상 값의 대소 문자를 구분하여 실패합니까?
훈련 후 나는 쿼리를 분류하는 자바 코드에서 사용 classifier.model에 knowledgeflow에서 다층 퍼셉트론 분류를 저장.
이 모델을 자바 코드로 직렬화 해제 한 후 테스트 세트 CSV 파일의 모든 쿼리를 지식 스트림의 (분배 직렬화 된 클래스 분류기에서 distributionForInstance() - 메소드를 사용하여) 분류 할 때 모든 'Geo'쿼리를 분류합니다. 'Facility'쿼리 및 모든 'QA'쿼리를 'Definition'쿼리로 사용합니다. 이것은 ClassifierPerformanceEvaluator가 나에게 'Geo'및 'QA'쿼리가 실제로 점수가 매겨지고 테스트 쿼리가 동일하다는 (동일한 CSV 파일이 사용 된) 혼란 행렬을 보여주기 때문에 조금 놀랐습니다. distributionForInstance() - 메소드를 사용하는 다른 모든 쿼리 분류는 정상적으로 작동하는 것처럼 보이므로 지식 흐름의 혼동 행렬을 바라 볼 것으로 예상되는 동작을 보여줍니다. 누구든지 가능한 distributionForInstance() - 자바 코드에서 메서드와 지식 흐름 평가 결과 사이의 분류 차이에 대한 원인을 알 수 있습니까?
내가 생각할 수있는 한 가지는 다음과 같습니다. testing-CSV 파일에는 모든 특성 케이스에 많은 특성 값 속성이 포함되어 있습니다. Java 코드에서 분류되기 전에 인스턴스의 모든 속성 값을 인쇄하면 이러한 값은 대문자로 변환됩니다 (DataSource.getDataSet() 메서드는 이와 같이 동작하는 것처럼 보입니다). 이러한 속성의 대소 문자가 CSV 파일 테스트의 일부 인스턴스가 다르게 분류되는 원인이 될 수 있습니까? 나는 명목 값 속성이 대소 문자를 구별한다는 Weka 명세를 읽었다. weka가 이러한 값이 공칭 속성에 대해 미리 정의되지 않았다는 예외를 던지므로 Java 파일에서이 값을 대문자로 변경합니다.
가능한 중복 [웨카 자바 라이브러리 : 분류 인스턴스의 캐릭터 라인 표현을 얻는 방법 (http://stackoverflow.com/questions/10684852/weka-java-library-how-to-get-string-representation- of-classified-instance) –
다른 질문은 실제로 동일한 저자가 있지만 동일한 프로젝트에 관심이 있지만 두 질문이 실제로 다르다고 나는 생각합니다. –