MLBase.jl
MLBase.jl copied to clipboard
Performance evaluation features
@lindahua, I would recommend adding the following features to Performance evaluation package:
High-level:
- Calculation of AUC (exact and approximated at subset of threshold values)
- Statistical comparison of difference between 2 ROC curves (
pROC
package from R is a good reference point) - Bootstraped confitence intervals for calculated statistics
- Adding more functions that calculate statistics, those included in
ROCR
package from R are a good reference; the minimal required stats in my opinion would be rate of positive predictions, lift and cost (based on cost of fp an fn) - Ability to calculate
ROCNum
not by threshold but by % of sample size (this is currently not available as it requires interpolation when there are several observations with exactly the same score and the % of sample is in the middle of their range; consider a vector of scores[1, 1, 1, 1, 2, 2, 2, 2]
and asking about ROC at 10% of the sample - this problem is very typical for decision trees)
Low-level:
- Current interface is not very simple when applied for plotting (we get a vector of
ROCNums
), The functions operating onROCNums
(likefalse_negative
etc.) could have methods that also work onVector{ROCNums}
- It would be useful to store in
ROCNums
also threshold at which it was calculated (along with information aboutord
used)
I would recommend to discuss what you think that matches your idea of this package. I am also open to implement some of those additions.
If anyone is interested I have a simple implementation of AUC based on ROCNum
array which I embedded in my own project: SALSA.jl. I can introduce it very quickly to MLBase.jl
.