我需要找到训练误差或误差(D)和测试误差或误差(s)。
假设上,要找到误差(s),我们使用公式:错误分类的实例/总实例数;然后要找到误差(D),我们使用误差(s)±置信区间(sqrt(误差(s)(1-误差(s)/n)))),其中n=总实例数
现在我如何找到错误分类的实例?这是否与使用Weka的Evaluation类的evaluate model方法找到的错误分类实例相同?请告诉我
代码:
import weka.classifiers.evaluation.Evaluation;import weka.classifiers.trees.J48;import weka.classifiers.trees.j48.ClassifierTree;import weka.core.Instances;import weka.core.converters.ConverterUtils.DataSource;@SuppressWarnings("unused")public class J48Tree {public static void main(String[] args) throws Exception { //load dataset DataSource trainsource = new DataSource(".//training data.arff"); DataSource testsource = new DataSource(".//test data.arff"); Instances dataset=trainsource.getDataSet(); Instances datatestset=testsource.getDataSet(); //set class index to the last attribute dataset.setClassIndex(dataset.numAttributes()-1); datatestset.setClassIndex(dataset.numAttributes()-1); //create classifier J48 tree = new J48(); //using an unpruned J48 tree.setUnpruned(true); //build the classifier tree.buildClassifier(dataset); // evaluate classifier and print some statistics Evaluation eval = new Evaluation(dataset); eval.evaluateModel(tree, datatestset); System.out.println(eval.toSummaryString("\nResults\n======\n", true)); } }
输出:
结果
正确分类的实例 540 22.2772 %错误分类的实例 1884 77.7228 %Kappa统计量 0.0644K&B相对信息得分 78375.7967 %K&B信息得分 1912.8906 bits 0.7891 bits/实例类复杂度 | 顺序0 7268.6047 bits 2.9986 bits/实例类复杂度 | 方案 725668.4216 bits 299.3682 bits/实例 复杂度改善 (Sf) -718399.8169 bits -296.3696 bits/实例平均绝对误差 0.2186均方根误差 0.3897相对绝对误差 91.6895 %根相对平方误差 109.0212 %总实例数 2424
回答:
如果你怀疑“错误分类”和“错误分类”是相同的,那么使用源代码。
查看Weka的源代码(幸运的是它是开源的)是了解它确切在做什么的唯一方法。即使我告诉你“是的,它是”,这可能在一个版本中是正确的,但在另一个版本中是错误的。所以,请使用你版本的源代码作为权威资源。