I'm using supervised classification algorithms from mlpy to classify things into two groups for a question-answering system. I don't really know how these algorithms work, but they seem to be doing vaguely what I want.
I would like to get some measure of confidence out of the classifiers. I can get "real-valued predictions" from the classifiers. These appear to be values of what I would call a link function. Here's some sample output from my system.
Predictions as to whether an answer is correct
for random data from various models
Results for one run
----------------------------------------------
Model Result Confidence? ("Real value")
----- ------ ---------------------------------
SVM [True, 0.10396502611075412]
FDA [True, 3.3052963597375227]
SRDA [False, 0.34205901959526142]
PDA [True, 3.8857018468328794]
----------------------------------------------
Results for another run
----------------------------------------------
Model Result Confidence? ("Real value")
----- ------ ---------------------------------
SVM [False, -0.0059697528841203369]
FDA [False, -0.15660355802446979]
SRDA [False, 1.2465697042600801]
PDA [True, 0.23122963338708608]
----------------------------------------------
The real values are generally more positive for classifications as "True" and more negative for classifications as "False", but the link is a bit more complex than that. Can I turn these real values into confidence measures? If so, how?
And I'm playing with the following classifiers.
- Support Vector Machines (SVMs)
- K Nearest Neighbor (KNN)
- Fisher Discriminant Analysis (FDA)
- Spectral Regression Discriminant Analysis (SRDA)
- Penalized Discriminant Analysis (PDA)
- Diagonal Linear Discriminant Analysis (DLDA)
Update: Having thought about this more, realize that I just need the rank of the confidence actually. Does it seem right the answers with the highest real values be the ones that are most confidently categorized in the True group? I'd still like to understand this a bit better, but an answer to that would be nice in the short term.