我使用WEKA Explorer运行10倍交叉验证。我将预测输出到CSV文件。因为10倍方法混合了数据的顺序,所以我不知道哪些特定数据被正确或错误地分类。 我的意思是,通过查看CSV,我不知道哪个特定的 1或0被归类为1或0.有什么方法可以查看测试集中每个特定实例的分类结果是什么每一次?例如,如果CSV将记录被分类的实例的ID,那将是很好的。
一种替代方案可以让我手动实施10folds方法;也就是说,我可以创建10个ARFF文件,然后在每个文件上运行90/10的百分比分割(并保留顺序)。这个解决方案看起来非常精细,费用昂贵且容易出错。
感谢您的帮助!
答案 0 :(得分:0)
为此,您需要为每个折叠执行以下操作:
int result = new int[testSet.numInstances()];
for (int j = 0; j < testSet.numInstances(); j++) {
double res[j] = classifier.classifyInstance(testSet.get(j));
}
现在res
数组具有测试集中每个实例的分类结果。您可以根据需要使用此信息。
例如,您可以打印每个实例的属性(例如,如果属性是您可以使用(在添加过滤器之前)testSet.get(j).stringValue(PositionOfAttributeYouWantToPrint))
之后打印它们的字符串,然后是分类结果。
请注意,如果分类结果是标称值,您可以使用以下方法打印:
testSet.classAttribute().value((int)res[j]))