Package statechum.analysis.learning.PrecisionRecall

Examples of statechum.analysis.learning.PrecisionRecall.ConfusionMatrix


  {
    Configuration config = Configuration.getDefaultConfiguration();
    LearnerGraph from = new LearnerGraph(buildGraph("A-a->A-b->B / A-c-#C","testClassify1a"),config),
    to=new LearnerGraph(buildGraph("A-b->A-a->B","testClassify1b"),config);
   
    ConfusionMatrix matrix = DiffExperiments.classify(TestFSMAlgo.buildSet(new String[][]{
        new String[]{"a","a"} // FN
        ,new String[]{"b","b"} // FP
    }), from, to);
    Assert.assertEquals(0.,matrix.getPrecision(),Configuration.fpAccuracy);
    Assert.assertEquals(0,matrix.getRecall(),Configuration.fpAccuracy);
    Assert.assertEquals(0.,matrix.fMeasure(),Configuration.fpAccuracy);
    Assert.assertEquals(0.,matrix.getSpecificity(),Configuration.fpAccuracy);
    Assert.assertEquals(0,matrix.BCR(),Configuration.fpAccuracy);
  }
View Full Code Here


  {
    Configuration config = Configuration.getDefaultConfiguration();
    LearnerGraph from = new LearnerGraph(buildGraph("A-a->A-b->B / A-c-#C","testClassify1a"),config),
    to=new LearnerGraph(buildGraph("A-b->A-a->B","testClassify1b"),config);
   
    ConfusionMatrix matrix = DiffExperiments.classify(TestFSMAlgo.buildSet(new String[][]{
        new String[]{"a","a"} // FN
        ,new String[]{"b","b"} // FP
        ,new String[]{"c"} // TN
    }), from, to);
    Assert.assertEquals(0.,matrix.getPrecision(),Configuration.fpAccuracy);
    Assert.assertEquals(0,matrix.getRecall(),Configuration.fpAccuracy);
    Assert.assertEquals(0.,matrix.fMeasure(),Configuration.fpAccuracy);
    Assert.assertEquals(0.5,matrix.getSpecificity(),Configuration.fpAccuracy);
    Assert.assertEquals(0.25,matrix.BCR(),Configuration.fpAccuracy);
  }
View Full Code Here

  {
    Configuration config = Configuration.getDefaultConfiguration();
    LearnerGraph from = new LearnerGraph(buildGraph("A-a->A-b->B / A-c-#C","testClassify1a"),config),
    to=new LearnerGraph(buildGraph("A-b->A-a->B","testClassify1b"),config);
   
    ConfusionMatrix matrix = DiffExperiments.classify(TestFSMAlgo.buildSet(new String[][]{
        new String[] {"a"} // TP
        ,new String[] {"b"} // TP
        ,new String[]{"b","b"} // FP
        ,new String[]{"c"} // TN
    }), from, to);
    Assert.assertEquals(2./3.,matrix.getPrecision(),Configuration.fpAccuracy);
    Assert.assertEquals(1,matrix.getRecall(),Configuration.fpAccuracy);
    Assert.assertEquals(0.8,matrix.fMeasure(),Configuration.fpAccuracy);
    Assert.assertEquals(0.5,matrix.getSpecificity(),Configuration.fpAccuracy);
    Assert.assertEquals(0.75,matrix.BCR(),Configuration.fpAccuracy);
  }
View Full Code Here

  private Pair<Double,Long> compareLang(LearnerGraph from, LearnerGraph to,
      Collection<List<String>> sequences)
  {
   
    final long startTime = System.nanoTime();
    ConfusionMatrix matrix = classify(sequences, from,to);
    final long duration = System.nanoTime() - startTime;
    double result = matrix.fMeasure();
    assert !Double.isNaN(result);
    return new Pair<Double,Long>(result,duration);
  }
View Full Code Here

      else if(!inTarget && inMutated)
        fp++;
      else if(!inTarget && !inMutated)
        tn++;
    }
    return new ConfusionMatrix(tp,tn,fp,fn);
  }
View Full Code Here

    set.clear();
    set.addAll(from);
    set.removeAll(to);
    fn = set.size();
   
    ConfusionMatrix conf = new ConfusionMatrix(tp, tn, fp, fn);
    return conf.fMeasure();
  }
View Full Code Here

      for(List<Label> seq:sMinus)
        pta.paths.augmentPTA(seq,false,false,null);
      pta.clearColours();
      new MarkovClassifier(m, pta).updateMarkov(false);// construct Markov chain
      // For Markov, we do not need to learn anything at all - our Markov matrix contains enough information to classify paths and hence compare it to the reference graph.
      ConfusionMatrix mat = DiffExperiments.classifyAgainstMarkov(testSet, referenceGraph, m);
      DifferenceToReferenceLanguageBCR differenceBCRMarkov = new DifferenceToReferenceLanguageBCR(mat);
     
      return new OtpErlangTuple(new OtpErlangObject[]{
          new OtpErlangDouble(differenceStructural.getValue()),new OtpErlangDouble(differenceBCRlearnt.getValue()),new OtpErlangDouble(differenceBCRMarkov.getValue())
      });
View Full Code Here

  private Pair<Double,Long> compareLang(LearnerGraph from, LearnerGraph to,
      Collection<List<Label>> sequences)
  {
   
    final long startTime = System.nanoTime();
    ConfusionMatrix matrix = classify(sequences, from,to);
    final long duration = System.nanoTime() - startTime;
    double result = matrix.fMeasure();
    assert !Double.isNaN(result);
    return new Pair<Double,Long>(result,duration);
  }
View Full Code Here

      else if(!inTarget && inMutated)
        fp++;
      else if(!inTarget && !inMutated)
        tn++;
    }
    return new ConfusionMatrix(tp,tn,fp,fn);
  }
View Full Code Here

    set.clear();
    set.addAll(expected);
    set.removeAll(detected);
    fn = set.size();
   
    ConfusionMatrix conf = new ConfusionMatrix(tp, tn, fp, fn);
    return conf.fMeasure();
  }
View Full Code Here

TOP

Related Classes of statechum.analysis.learning.PrecisionRecall.ConfusionMatrix

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.