Ejemplo n.º 1
0
 private void updateConfusionMatrix(
     ConfusionMatrix m, Example ex, double compatDecisionThreshold, double probDecisionThreshold) {
   List<Derivation> derivations = ex.getPredDerivations();
   double[] probs = Derivation.getProbs(derivations, 1.0d);
   for (int i = 0; i < derivations.size(); i++) {
     Derivation deriv = derivations.get(i);
     double gold, pred;
     if (compatDecisionThreshold == -1.0d) gold = deriv.getCompatibility();
     else gold = (deriv.getCompatibility() > compatDecisionThreshold) ? 1.0d : 0.0d;
     if (probDecisionThreshold == -1.0d) pred = probs[i];
     else pred = (probs[i] > probDecisionThreshold) ? 1.0d : 0.0d;
     m.tp += gold * pred;
     m.fn += gold * (1.0d - pred);
     m.fp += (1.0d - gold) * pred;
     m.tn += (1.0d - gold) * (1.0d - pred);
   }
 }