Я написал код для SVM на Java с помощью Eclipse, Вот мой код:Weka - ошибка на Java для SVM
import weka.core.Instances;
import java.util.Random;
import weka.core.converters.ConverterUtils.DataSource;
import weka.classifiers.trees.J48;
import weka.classifiers.evaluation.*;
import weka.classifiers.functions.SMO;
public class Evaluate {
public static void main (String args [])throws Exception{
DataSource source = new DataSource("/Users/kdash/workspace/Weka/Negative.arff");
Instances dataset = source.getDataSet();
//set class index to last attribute
dataset.setClassIndex(dataset.numAttributes()-1);
//Create Classifier
//J48 tree = new J48();
//tree.buildClassifier(dataset);
SMO svm = new SMO();
svm.buildClassifier(dataset);
Evaluation eval = new Evaluation(dataset);
// test dataset
DataSource source1 = new DataSource("/Users/kdash/workspace/Weka/Negative.arff");
Instances testDataset = source1.getDataSet();
testDataset.setClassIndex(testDataset.numAttributes() -1);
eval.evaluateModel(svm, testDataset);
System.out.println(eval.toSummaryString("Evaluation: \n", false));
System.out.println("Correct % = " + eval.pctCorrect());
System.out.println("Incorrect % = " + eval.pctIncorrect());
System.out.println("AUC % = " + eval.areaUnderROC(1));
System.out.println("Kappa % = " + eval.kappa());
System.out.println("MAE % = " + eval.meanAbsoluteError());
System.out.println("RMSE % = " + eval.rootMeanSquaredError());
System.out.println("RAE % = " + eval.relativeAbsoluteError());
System.out.println("RRSE % = " + eval.rootRelativeSquaredError());
System.out.println("Precision % = " + eval.precision(1));
System.out.println("Recall % = " + eval.recall(1));
System.out.println("F-Measure % = " + eval.fMeasure(1));
System.out.println("Error rate % = " + eval.errorRate());
//confusion matrix
System.out.println(eval.toMatrixString("Overall Confusion Matrix === \n"));
}
}
, но я получаю следующее сообщение об ошибке:
Exception in thread "main" weka.core.UnsupportedAttributeTypeException:
weka.classifiers.functions.SMO: Cannot handle numeric class! at weka.core.Capabilities.test(Capabilities.java:953) at weka.core.Capabilities.test(Capabilities.java:1109) at weka.core.Capabilities.test(Capabilities.java:1022) at weka.core.Capabilities.testWithFail(Capabilities.java:1301) at weka.classifiers.functions.SMO.buildClassifier(SMO.java:1250) at Evaluate.main(Evaluate.java:25)
Мой набор данных содержит три разные строки 1. Полярность (-1) для всех строк 2. Class - Отрицательные появление 3. Слово
отредактируйте свой вопрос, чтобы добавить соответствующие данные вместо написание ответа .. – Sid