/** * Returns a String summarizing F1 that will print nicely. */ public String getDescription(int numDigits) { StringBuffer sb = new StringBuffer(); sb.append("--- PR Stats ---").append("\n"); for (L label : labelIndex) { if (label == null || label.equals(negLabel)) { continue; } sb.append("** ").append(label.toString()).append(" **\n"); sb.append("\tPrec: ").append(getPrecisionDescription(numDigits, label)).append("\n"); sb.append("\tRecall: ").append(getRecallDescription(numDigits, label)).append("\n"); sb.append("\tF1: ").append(getF1Description(numDigits, label)).append("\n"); } sb.append("** Overall **\n"); sb.append("\tPrec: ").append(getPrecisionDescription(numDigits)).append("\n"); sb.append("\tRecall: ").append(getRecallDescription(numDigits)).append("\n"); sb.append("\tF1: ").append(getF1Description(numDigits)); return sb.toString(); } }
/** * Returns a String summarizing F1 that will print nicely. */ public String getF1Description(int numDigits) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(numDigits); return nf.format(getFMeasure()); }
public double getFMeasure(L label) { double p = getPrecision(label); double r = getRecall(label); double f = (2 * p * r) / (p + r); return f; }
public double getPrecision(L label) { return getPrecisionInfo(label).first(); }
public double getRecall(L label) { return getRecallInfo(label).first(); }
public <F> MultiClassPrecisionRecallStats(Classifier<L,F> classifier, GeneralDataset<L,F> data, L negLabel) { this.negLabel = negLabel; score(classifier, data); }
public double getPrecision() { return getPrecisionInfo().first(); }
public double getRecall() { return getRecallInfo().first(); }
public <F> double score(ProbabilisticClassifier<L,F> classifier, GeneralDataset<L,F> data) { return score((Classifier<L,F>)classifier, data); }
/** * Returns a String summarizing F1 that will print nicely. */ public String getDescription(int numDigits) { StringBuffer sb = new StringBuffer(); sb.append("--- PR Stats ---").append("\n"); for (L label : labelIndex) { if (label == null || label.equals(negLabel)) { continue; } sb.append("** ").append(label.toString()).append(" **\n"); sb.append("\tPrec: ").append(getPrecisionDescription(numDigits, label)).append("\n"); sb.append("\tRecall: ").append(getRecallDescription(numDigits, label)).append("\n"); sb.append("\tF1: ").append(getF1Description(numDigits, label)).append("\n"); } sb.append("** Overall **\n"); sb.append("\tPrec: ").append(getPrecisionDescription(numDigits)).append("\n"); sb.append("\tRecall: ").append(getRecallDescription(numDigits)).append("\n"); sb.append("\tF1: ").append(getF1Description(numDigits)); return sb.toString(); } }
public double getFMeasure() { double p = getPrecision(); double r = getRecall(); double f = (2 * p * r) / (p + r); return f; }
public String getPrecisionDescription(int numDigits, L label) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(numDigits); Triple<Double, Integer, Integer> prec = getPrecisionInfo(label); return nf.format(prec.first()) + " (" + prec.second() + "/" + (prec.second() + prec.third()) + ")"; }
/** * Returns a String summarizing precision that will print nicely. */ public String getRecallDescription(int numDigits) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(numDigits); Triple<Double, Integer, Integer> recall = getRecallInfo(); return nf.format(recall.first()) + " (" + recall.second() + "/" + (recall.second() + recall.third()) + ")"; }
public String getF1Description(int numDigits, L label) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(numDigits); return nf.format(getFMeasure(label)); }
public <F> MultiClassPrecisionRecallStats(Classifier<L,F> classifier, GeneralDataset<L,F> data, L negLabel) { this.negLabel = negLabel; score(classifier, data); }
/** * Returns a String summarizing F1 that will print nicely. */ public String getDescription(int numDigits) { StringBuffer sb = new StringBuffer(); sb.append("--- PR Stats ---").append("\n"); for (L label : labelIndex) { if (label == null || label.equals(negLabel)) { continue; } sb.append("** ").append(label.toString()).append(" **\n"); sb.append("\tPrec: ").append(getPrecisionDescription(numDigits, label)).append("\n"); sb.append("\tRecall: ").append(getRecallDescription(numDigits, label)).append("\n"); sb.append("\tF1: ").append(getF1Description(numDigits, label)).append("\n"); } sb.append("** Overall **\n"); sb.append("\tPrec: ").append(getPrecisionDescription(numDigits)).append("\n"); sb.append("\tRecall: ").append(getRecallDescription(numDigits)).append("\n"); sb.append("\tF1: ").append(getF1Description(numDigits)); return sb.toString(); } }
public double getFMeasure(L label) { double p = getPrecision(label); double r = getRecall(label); double f = (2 * p * r) / (p + r); return f; }
/** * Returns a String summarizing precision that will print nicely. */ public String getPrecisionDescription(int numDigits) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(numDigits); Triple<Double, Integer, Integer> prec = getPrecisionInfo(); return nf.format(prec.first()) + " (" + prec.second() + "/" + (prec.second() + prec.third()) + ")"; }
public String getRecallDescription(int numDigits, L label) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(numDigits); Triple<Double, Integer, Integer> recall = getRecallInfo(label); return nf.format(recall.first()) + " (" + recall.second() + "/" + (recall.second() + recall.third()) + ")"; }
return getFMeasure();