/** * Calculate the F-Measure with respect to a particular class. This is defined * as * <p/> * * <pre> * 2 * recall * precision * ---------------------- * recall + precision * </pre> * * @param classIndex the index of the class to consider as "positive" * @return the F-Measure */ public double fMeasure(int classIndex) { return m_delegate.fMeasure(classIndex); }
/** * Calculate the F-Measure with respect to a particular class. This is defined * as * <p/> * * <pre> * 2 * recall * precision * ---------------------- * recall + precision * </pre> * * @param classIndex the index of the class to consider as "positive" * @return the F-Measure */ public double fMeasure(int classIndex) { return m_delegate.fMeasure(classIndex); }
/** * Calculates the macro weighted (by class size) average F-Measure. * * @return the weighted F-Measure. */ public double weightedFMeasure() { double[] classCounts = new double[m_NumClasses]; double classCountSum = 0; for (int i = 0; i < m_NumClasses; i++) { for (int j = 0; j < m_NumClasses; j++) { classCounts[i] += m_ConfusionMatrix[i][j]; } classCountSum += classCounts[i]; } double fMeasureTotal = 0; for (int i = 0; i < m_NumClasses; i++) { double temp = fMeasure(i); if (classCounts[i] > 0) { // If temp is NaN, we want the sum to also be NaN if count > 0 fMeasureTotal += (temp * classCounts[i]); } } return fMeasureTotal / classCountSum; }
/** * Calculates the macro weighted (by class size) average F-Measure. * * @return the weighted F-Measure. */ public double weightedFMeasure() { double[] classCounts = new double[m_NumClasses]; double classCountSum = 0; for (int i = 0; i < m_NumClasses; i++) { for (int j = 0; j < m_NumClasses; j++) { classCounts[i] += m_ConfusionMatrix[i][j]; } classCountSum += classCounts[i]; } double fMeasureTotal = 0; for (int i = 0; i < m_NumClasses; i++) { double temp = fMeasure(i); if (classCounts[i] > 0) { // If temp is NaN, we want the sum to also be NaN if count > 0 fMeasureTotal += (temp * classCounts[i]); } } return fMeasureTotal / classCountSum; }
/** * Unweighted macro-averaged F-measure. If some classes not present in the * test set, they're just skipped (since recall is undefined there anyway) . * * @return unweighted macro-averaged F-measure. * */ public double unweightedMacroFmeasure() { weka.experiment.Stats rr = new weka.experiment.Stats(); for (int c = 0; c < m_NumClasses; c++) { // skip if no testing positive cases of this class if (numTruePositives(c) + numFalseNegatives(c) > 0) { rr.add(fMeasure(c)); } } rr.calculateDerived(); return rr.mean; }
/** * Unweighted macro-averaged F-measure. If some classes not present in the * test set, they're just skipped (since recall is undefined there anyway) . * * @return unweighted macro-averaged F-measure. * */ public double unweightedMacroFmeasure() { weka.experiment.Stats rr = new weka.experiment.Stats(); for (int c = 0; c < m_NumClasses; c++) { // skip if no testing positive cases of this class if (numTruePositives(c) + numFalseNegatives(c) > 0) { rr.add(fMeasure(c)); } } rr.calculateDerived(); return rr.mean; }
vals[offset++] = eval.precision(i); vals[offset++] = eval.recall(i); vals[offset++] = eval.fMeasure(i); vals[offset++] = eval.areaUnderROC(i); vals[offset++] = eval.areaUnderPRC(i);
.weightedRecall(); case 21: return hasValIndex ? m_eval.fMeasure(classValIndex[0]) : m_eval .weightedFMeasure(); case 22:
.weightedRecall(); case 21: return hasValIndex ? m_eval.fMeasure(classValIndex[0]) : m_eval .weightedFMeasure(); case 22: