fr.inrialpes.exmo.align.impl.eval
Class ROCCurveEvaluator
java.lang.Object
fr.inrialpes.exmo.align.impl.eval.GraphEvaluator
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
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
auc
private double auc
ROCCurveEvaluator
public ROCCurveEvaluator()
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
(C) INRIA & friends, 2003-${curryear}