List of usage examples for weka.classifiers.evaluation Evaluation toSummaryString
@Override
public String toSummaryString()
From source file:cn.ict.zyq.bestConf.bestConf.BestConf.java
License:Open Source License
public static void testCOMT2() throws Exception { BestConf bestconf = new BestConf(); Instances trainingSet = DataIOFile.loadDataFromArffFile("data/trainingBestConf0.arff"); trainingSet.setClassIndex(trainingSet.numAttributes() - 1); Instances samplePoints = LHSInitializer.getMultiDimContinuous(bestconf.getAttributes(), InitialSampleSetSize, false); samplePoints.insertAttributeAt(trainingSet.classAttribute(), samplePoints.numAttributes()); samplePoints.setClassIndex(samplePoints.numAttributes() - 1); COMT2 comt = new COMT2(samplePoints, COMT2Iteration); comt.buildClassifier(trainingSet);/* ww w. j a v a 2 s. c o m*/ Evaluation eval = new Evaluation(trainingSet); eval.evaluateModel(comt, trainingSet); System.err.println(eval.toSummaryString()); Instance best = comt.getInstanceWithPossibleMaxY(samplePoints.firstInstance()); Instances bestInstances = new Instances(trainingSet, 2); bestInstances.add(best); DataIOFile.saveDataToXrffFile("data/trainingBestConf_COMT2.arff", bestInstances); //now we output the training set with the class value updated as the predicted value Instances output = new Instances(trainingSet, trainingSet.numInstances()); Enumeration<Instance> enu = trainingSet.enumerateInstances(); while (enu.hasMoreElements()) { Instance ins = enu.nextElement(); double[] values = ins.toDoubleArray(); values[values.length - 1] = comt.classifyInstance(ins); output.add(ins.copy(values)); } DataIOFile.saveDataToXrffFile("data/trainingBestConf0_predict.xrff", output); }
From source file:gov.va.chir.tagline.TagLineEvaluator.java
License:Open Source License
public void evaluate(final ClassifierType type, final String... options) throws Exception { Classifier model = null;/*from w w w. ja v a2s. c o m*/ if (type == null) { throw new IllegalArgumentException("Classifier type must be specified"); } if (type.equals(ClassifierType.J48)) { model = new J48(); } else if (type.equals(ClassifierType.LMT)) { model = new LMT(); } else if (type.equals(ClassifierType.RandomForest)) { model = new RandomForest(); } else if (type.equals(ClassifierType.SVM)) { model = new LibSVM(); } else { throw new IllegalArgumentException(String.format("Classifier type not supported (%s)", type)); } if (model != null) { // Set classifier options if (options != null && options.length > 0) { if (model instanceof AbstractClassifier) { ((AbstractClassifier) model).setOptions(options); } } fc.setClassifier(model); final Attribute attrDocId = instances.attribute(DatasetUtil.DOC_ID); if (attrDocId == null) { throw new IllegalStateException(String.format("%s attribute must exist", DatasetUtil.DOC_ID)); } final List<Set<Object>> foldDocIds = getFoldDocIds(attrDocId); final RemoveWithValues rmv = new RemoveWithValues(); // RemoveWithValues filter is not zero-based! rmv.setAttributeIndex(String.valueOf(attrDocId.index() + 1)); rmv.setModifyHeader(false); final Evaluation eval = new Evaluation(instances); // Perform cross-validation for (int i = 0; i < numFolds; i++) { rmv.setNominalIndicesArr(getAttributeIndexValues(attrDocId, foldDocIds.get(i))); rmv.setInvertSelection(false); rmv.setInputFormat(instances); // Must be called AFTER all options final Instances train = Filter.useFilter(instances, rmv); rmv.setInvertSelection(true); rmv.setInputFormat(instances); // Must be called AFTER all options final Instances test = Filter.useFilter(instances, rmv); fc.buildClassifier(train); eval.evaluateModel(fc, test); } evaluationSummary = String.format("%s%s%s%s%s", eval.toSummaryString(), System.getProperty("line.separator"), eval.toMatrixString(), System.getProperty("line.separator"), eval.toClassDetailsString()); } }