pub struct MLModelMetrics<A: Float + Send + Sync> {
pub accuracy: A,
pub precision: A,
pub recall: A,
pub f1_score: A,
pub auc_roc: Option<A>,
pub false_positive_rate: A,
pub training_time: Duration,
pub inference_time: Duration,
}Expand description
Performance metrics for ML models
Fields§
§accuracy: AAccuracy of anomaly detection
precision: APrecision (true positives / (true positives + false positives))
recall: ARecall (true positives / (true positives + false negatives))
f1_score: AF1 score
auc_roc: Option<A>Area under the ROC curve, traced over every threshold the retained
labelled scores admit, or None while fewer than two labelled scores of
either class have been fed back.
This is deliberately optional. A detector’s confusion matrix alone fixes
exactly one point on the ROC curve, so no area can be derived from it;
the single-operating-point substitute (TPR + TNR) / 2 that used to be
reported here was a different statistic wearing the AUC’s name. Call
DetectionCounters::auc_roc for the reason it is unavailable.
false_positive_rate: AFalse positive rate
training_time: DurationTraining time
inference_time: DurationInference time per sample
Trait Implementations§
Auto Trait Implementations§
impl<A> Freeze for MLModelMetrics<A>where
A: Freeze,
impl<A> RefUnwindSafe for MLModelMetrics<A>where
A: RefUnwindSafe,
impl<A> Send for MLModelMetrics<A>
impl<A> Sync for MLModelMetrics<A>
impl<A> Unpin for MLModelMetrics<A>where
A: Unpin,
impl<A> UnsafeUnpin for MLModelMetrics<A>where
A: UnsafeUnpin,
impl<A> UnwindSafe for MLModelMetrics<A>where
A: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.