2012-04-21 1 views
0

파일 교환에서 얻은 Matlab Weka 인터페이스를 사용하여 일부 교차 유효성 검사를 수행하고 있습니다. 내 루프 구조가 Weka의 Logistic 분류기에서 제대로 작동하는 것 같습니다. 나는 훈련 집합의 인스턴스의 수는보다 큰 경우에만 발생 몇 가지 테스트를 통해 확인한Matlab Weka 인터페이스 AdaBoost 문제 : 범위를 벗어났습니다 예외

??? Java exception occurred: java.lang.ArrayIndexOutOfBoundsException 

Error in ==> wekaClassify at 24 classProbs(t+1,:) = (classifier.distributionForInstance(testData.instance(t)))'; 

Error in ==> classifier_search at 225 [pred ~] = wekaClassify(matlab2weka('instance', featurelabels, tester), classifier); 

: 나는 AdaBoostM1에 대한 정확한 같은 일을하려고 할 때, 다음과 같은 오류가 발생합니다 테스트 세트의 인스턴스 수 대부분의 상황에서 트레이닝 세트가 테스트 세트보다 크기 때문에 나에게 이것이 왜 문제인지 알 수있을 것입니다.

Logistic이 아닌 Adaboost를 사용할 때 입력 내용의 형식을 변경하는 방법이 있습니까? 이 문제와 관련하여 제공 할 수있는 정보는 매우 유용 할 것입니다.

나는이 페이지에서이 코드를 다운로드 : http://www.mathworks.com/matlabcentral/fileexchange/21204-matlab-weka-interface

이메일은 그것을 만든 사람의 계정에서 반송, 그는이 페이지에 대한 의견에 응답하지 않는 것 - 내가 바라고 있어요 어쩌면 사람 여기 이걸 사용했습니다.

편집 : 여기에 내가 훈련하고 분류 테스트하는 데 사용하는 코드입니다 : 내가 소프트웨어의 조합을 사용하지 않은

classifier = trainWekaClassifier(matlab2weka('training', featurelabels, train), 'meta.AdaBoostM1', { strcat('-P 100 -S 1 -I ', num2str(r), '-W weka.classifiers.trees.DecisionStump')}); 
[pred ~] = wekaClassify(matlab2weka('instance', featurelabels, tester), classifier); 

답변

0

, 그래서 나는 단지이 발생할 수 무슨 추측을 할 수 있습니다.

교육/테스트 데이터 매트릭스가 올바른 방법입니까? N-by-D (N 개의 인스턴스, D 개의 기능) 여야합니다.

D-by-N 테스트 매트릭스와 D-by-M 테스트 매트릭스를 전달하는 경우 M < N - 이것이 사용자가 설명하는 경우에만 작동합니다. 그것은 의미있는 결과를주지 않을 것이다.

+0

답변 해 주셔서 감사합니다. 그러나 행렬은 올바르게 방향이 지정됩니다. 나는 똑같은 코드를 사용했지만 다른 프로그램에서 다른 분류자를 사용했다. 또한 확실하게, 행렬을 전치 (transposing)하려고 시도했는데 레이블이 유형 문자열이 아니기 때문에 행렬이 끊어졌습니다. – Nicole

+0

분류자를 훈련하고 테스트하는 데 사용하는 코드를 표시 할 수 있습니까? – Richante

+0

느린 응답에 대해 사과드립니다. 귀하의 의견에 대한 통보를받지 못했습니다. 내 게시물에서 요청한 수정을했습니다. 정말 고맙습니다! – Nicole

관련 문제