package modelkit

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Modelkit.Binary_classification_metrics

Binary classification metrics and plotting-neutral curve data.

positive_label defaults to 1. Observed labels must contain at most one other integer label. Curve thresholds are deterministic: ROC thresholds are descending and begin with infinity; precision-recall thresholds are ascending. ROC and precision-recall curves require positive and negative weighted support. Scalar fallbacks are zero for undefined precision, recall, F1, and balanced accuracy, 0.5 for ROC AUC, and zero for average precision, which sums precision over recall steps of the precision-recall curve without interpolation. Scalar label and loss metrics are O(samples) with O(1) scratch. Ranking curves are O(samples * log samples) time and O(samples) space.

type roc_curve = {
  1. thresholds : Vector.t;
  2. false_positive_rates : Vector.t;
  3. true_positive_rates : Vector.t;
}
type precision_recall_curve = {
  1. decision_thresholds : Vector.t;
  2. precisions : Vector.t;
  3. recalls : Vector.t;
}
val accuracy : ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> prediction:Target.classification Target.t -> unit -> (float, Error.t) result
val balanced_accuracy : ?positive_label:int -> ?undefined:Undefined_metric_policy.t -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> prediction:Target.classification Target.t -> unit -> (float, Error.t) result
val precision : ?positive_label:int -> ?undefined:Undefined_metric_policy.t -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> prediction:Target.classification Target.t -> unit -> (float, Error.t) result
val recall : ?positive_label:int -> ?undefined:Undefined_metric_policy.t -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> prediction:Target.classification Target.t -> unit -> (float, Error.t) result
val f1 : ?positive_label:int -> ?undefined:Undefined_metric_policy.t -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> prediction:Target.classification Target.t -> unit -> (float, Error.t) result
val log_loss : ?positive_label:int -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> positive_probabilities:Vector.t -> unit -> (float, Error.t) result
val roc_auc : ?positive_label:int -> ?undefined:Undefined_metric_policy.t -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> positive_probabilities:Vector.t -> unit -> (float, Error.t) result
val average_precision : ?positive_label:int -> ?undefined:Undefined_metric_policy.t -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> positive_probabilities:Vector.t -> unit -> (float, Error.t) result
val roc_curve : ?positive_label:int -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> positive_probabilities:Vector.t -> unit -> (roc_curve, Error.t) result
val precision_recall_curve : ?positive_label:int -> ?sample_weight:Sample_weight.t -> truth:Target.classification Target.t -> positive_probabilities:Vector.t -> unit -> (precision_recall_curve, Error.t) result