java.lang.Object
org.elasticsearch.xpack.core.ml.dataframe.evaluation.common.AbstractAucRoc
org.elasticsearch.xpack.core.ml.dataframe.evaluation.outlierdetection.AucRoc
All Implemented Interfaces:
NamedWriteable, Writeable, ToXContent, ToXContentObject, EvaluationMetric

public class AucRoc extends AbstractAucRoc
Area under the curve (AUC) of the receiver operating characteristic (ROC). The ROC curve is a plot of the TPR (true positive rate) against the FPR (false positive rate) over a varying threshold. This particular implementation is making use of ES aggregations to calculate the curve. It then uses the trapezoidal rule to calculate the AUC. In particular, in order to calculate the ROC, we get percentiles of TP and FP against the predicted probability. We call those Rate-Threshold curves. We then scan ROC points from each Rate-Threshold curve against the other using interpolation. This gives us an approximation of the ROC curve that has the advantage of being efficient and resilient to some edge cases. When this is used for multi-class classification, it will calculate the ROC curve of each class versus the rest.