Java中的Weka“类索引为负”错误
我正在尝试java中的weka库。我连接sql server并提取数据。以及分批测试和培训。我为考试和训练设置了班级指标。这是我的代码部分
Instances data = new Instances(datafile);
data.setClassIndex(data.numAttributes() - 1);
int trainSize = (int) Math.round(data.numInstances() * 0.8);
int testSize = data.numInstances() - trainSize;
Instances train = new Instances(data, 0, trainSize);
Instances test = new Instances(data, trainSize, testSize);
train.setClassIndex(train.numAttributes() - 1);
test.setClassIndex(test.numAttributes() - 1);
Classifier[] models =
{
new J48(),
new PART(),
new DecisionTable(),
new DecisionStump(),
new NaiveBayes(),
new IBk()
};
// Run for each model
for (int j = 0; j < models.length; j++)
{
FastVector predictions = new FastVector();
Evaluation validation = classify(models[j], train, test);
predictions.appendElements(validation.predictions());
}
}
我在这条线上出错了
Evaluation validation = classify(models[j], train, test);,
我在网上搜索这个错误,用户说这样写代码
train.setClassIndex(train.numAttributes() - 1);
test.setClassIndex(test.numAttributes() - 1);
但我又犯了同样的错误。完全是这样的错误
Exception in thread "main" weka.core.UnassignedClassException: Class index is negative (not set)!
at weka.core.Instances.numClasses(Instances.java:915)
at weka.classifiers.evaluation.Evaluation.<init>(Evaluation.java:461)
at weka.classifiers.evaluation.Evaluation.<init>(Evaluation.java:441)
at weka.classifiers.Evaluation.<init>(Evaluation.java:211)
at weka1.Weka1.classify(Weka1.java:84)
at weka1.Weka1.main(Weka1.java:193)
共 (0) 个答案