2013-04-18 2 views
-1

Weka에 대한 간단한 실험을하고 있습니다. 간단한 교차 유효성 검사를 시도하고이 오류가 발생했습니다. 아래 출력에서 ​​생성하는 오류 메시지입니다. 다음은 Java Weka : java.lang.ClassCastException

java.lang.ClassCastException: java.lang.Integer cannot be cast to weka.classifiers.evaluation.output.prediction.AbstractOutput 
at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:1471) 
at assg.Assg.crossValidation(Assg.java:171) 
at assg.Assg.main(Assg.java:160) 

내 당신도 오류 메시지와 호출하고있는 기능에 대한 문서를 읽습니까

public static void crossValidation() throws Exception 
{ 
    eval.evaluateModel(cls, training, 10, new Random(1)); 
    System.out.println(eval.toSummaryString()); 
} 
+0

문제를 직접 해결하기 위해 어떤 시도를 했습니까? – Antimony

+0

죄송합니다 ... 교차 검증을 실행하는 데 잘못된 방법을 호출합니다 ... 죄송합니다. 내 잘못이야... –

답변

0

코딩입니까?

/** 
    * Evaluates the classifier on a given set of instances. Note that 
    * the data must have exactly the same format (e.g. order of 
    * attributes) as the data used to train the classifier! Otherwise 
    * the results will generally be meaningless. 
    * 
    * @param classifier machine learning classifier 
    * @param data set of test instances for evaluation 
    * @param forPredictionsPrinting varargs parameter that, if supplied, is 
    * expected to hold a weka.classifiers.evaluation.output.prediction.AbstractOutput 
    * object 
    * @return the predictions 
    * @throws Exception if model could not be evaluated 
    * successfully 
    */ 
    public double[] evaluateModel(Classifier classifier, 
           Instances data, 
           Object... forPredictionsPrinting) 

당신은 weka.classifiers.evaluation.output.prediction.AbstractOutput 기대되는 함수에 인수로 (java.lang.Integer에 오토 박싱한다) 원시적 인의 INT를 전달하고 있습니다. 형식이 호환되지 않기 때문에 분명히 캐스팅 오류가 발생합니다.