2011-08-22 9 views
0

나는 훈련 된 j48 분류자를 가지고 있으며, 하나의 레코드로 분류하려고합니다. 그래서 나는 weka.core.instance 객체를 사용하고 명령에 의해 그것을 분류하기로 결정했습니다 : "classifyInstance (record)"/ 하지만 첫 번째 단계에서 문제가 있습니다 : 인스턴스를 생성합니다. 때 속성의 값을 설정하려면 예외 : 스레드 "main"에서 예외 java.lang.ArrayIndexOutOfBoundsException : -1 나는 그들 중 첫 번째 문자열은 다른 int 있습니다 24 특성이 있습니다.자바에서 weka.core.instance를 사용할 때의 문제점

Instance record = new Instance(data.size()); 
    for(int i=1; i<data.size(); i++) 
    record.setValue(new Attribute(featuers[i]), Integer.parseInt(data.get(i))); 

데이터 속성의 값을 포함하고 featuers은 속성의 이름이 포함 된 문자열 배열입니다 ArrayList에 있습니다 : 그래서 나는 아래의 코드를 사용합니다.

감사합니다.

+1

단일 레코드를 분류하기위한 내 접근 방식이 맞는지 여부를 모르겠습니다. 다른 접근 방식이 유용하고 감사하게 될 것입니다. – shohreh

+0

마지막으로 해결책을 찾았습니다. String 또는 nominal 속성의 경우 먼저 문자열 속성 값을 데이터 세트에 추가 한 다음 인스턴스에 setValue를 시도해야합니다. – shohreh

+0

shohreh : 질문에 대한 답변을 직접 게시하고 답변을 수락 해주십시오. 또한 문제를 해결하면 이전 질문에 대한 대답을 수락해야합니다. – Zecas

답변

0

문자열 또는 공칭 특성의 경우 먼저 문자열 특성 값을 데이터 집합에 추가 한 다음 예를 들어 setValue를 시도해야합니다.

관련 문제