Alignment API and Server 4.1.${version.update}

fr.inrialpes.exmo.align.impl.eval
Class ROCCurveEvaluator

java.lang.Object
  extended by fr.inrialpes.exmo.align.impl.eval.GraphEvaluator
      extended by fr.inrialpes.exmo.align.impl.eval.ROCCurveEvaluator

public class ROCCurveEvaluator
extends GraphEvaluator

Compute ROCCurves

Version:
$Id: ROCCurveEvaluator.java 1506 2010-08-21 08:45:52Z euzenat $ ROCCurves traverse the ranked list of correspondences Hence, like PRGraphs, it is only relevant to this case. X-axis is the number of incorrect correspondences Y-axis is the number of correct correspondences It is expected that the curve grows fast first and then much slower This indicates the accuracy of the matcher. The "Surface Under Curve" (AUC) is returned as a result. AUC is in fact the percentage of surface under the curve (given by N the size of the reference alignment and P the size of all pairs of ontologies, N*P is the full size), Area/N*P. It is ususally interpreted as: 0.9 - 1.0 excellent 0.8 - 0.9 good 0.7 - 0.8 fair 0.6 - 0.7 poor 0.0 - 0.6 bad The problem with these measures is that they assume that the provided alignment is a complete alignment: it contains all pairs of entities hence auc are comparable because they depend on the same sizes... This is not the case when alignment are incomplete. Hence, this should be normalised. There are two ways of doing this: - simply Area/N*P, but this would advantage - considering the current subpart Area/N*| => both would advantage matchers with high precision penalising them Area/N*P - interpolating the curve: NOT EASY, TO BE IMPLEMENTED
Author:
Jerome Euzenat

Field Summary
private  double auc
           
 
Fields inherited from class fr.inrialpes.exmo.align.impl.eval.GraphEvaluator
cellSet, invalid, nbexpected, points, STEP
 
Constructor Summary
ROCCurveEvaluator()
           
 
Method Summary
 Vector<Pair> eval()
          For the moment
 Vector<Pair> eval(Properties param)
          Compute ROCCurve points From an ordered vector of cells with their correctness status
 double getAUC()
           
 double getGlobalResult()
          Retuns a simple global evaluation measure if any
 double getPlotResult(int i)
           
 void write(PrintWriter writer)
          This output the result
 void writePlot(PrintWriter writer)
           
 String xlabel()
           
 String ylabel()
           
 
Methods inherited from class fr.inrialpes.exmo.align.impl.eval.GraphEvaluator
getStep, ingest, initCellSet, isCorrect, isValid, nbCells, setStep, writeXMLMap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

auc

private double auc
Constructor Detail

ROCCurveEvaluator

public ROCCurveEvaluator()
Method Detail

eval

public Vector<Pair> eval(Properties param)
Compute ROCCurve points From an ordered vector of cells with their correctness status

Specified by:
eval in class GraphEvaluator

eval

public Vector<Pair> eval()
For the moment

Specified by:
eval in class GraphEvaluator

write

public void write(PrintWriter writer)
           throws IOException
This output the result

Throws:
IOException

writePlot

public void writePlot(PrintWriter writer)
Overrides:
writePlot in class GraphEvaluator

getPlotResult

public double getPlotResult(int i)

getGlobalResult

public double getGlobalResult()
Description copied from class: GraphEvaluator
Retuns a simple global evaluation measure if any

Specified by:
getGlobalResult in class GraphEvaluator

getAUC

public double getAUC()

xlabel

public String xlabel()
Specified by:
xlabel in class GraphEvaluator

ylabel

public String ylabel()
Specified by:
ylabel in class GraphEvaluator

Alignment API and Server 4.1.${version.update}

(C) INRIA & friends, 2003-${curryear}