Trying to understand the function perfcurve
in MatLab.
Information regarding the function is confusing me at two points.
At one place, it says that
You can use perfcurve with any classifier or, more broadly, with any method that returns a numeric score for an instance of input data. By convention adopted here,
- A high score returned by a classifier for any given instance signifies that the instance is likely from the positive class.
- A low score signifies that the instance is likely from the negative classes.
At another point, it says that
perfcurve does not impose any requirements on the input score range. Because of this lack of normalization, you can use perfcurve to process scores returned by any classification, regression, or fit method. perfcurve does not make any assumptions about the nature of input scores or relationships between the scores for different classes.
So I was using Euclidean distance for a face recognition, user identification problem to output whether a user is already enrolled in the database or not. Since the Euclidean distance is a measure of dis-similarity and not the other way round, a lower score denotes a 1 and a higher scores denotes a 0. Can I then use these output scores directly as an argument in perfcurve, or do I need to modify it in some way?
This is the output I am currently getting for SIFT-based matching. Either there is some problem with my implementation, or the plot isn't correct. I need to figure that out.