use crate::TrainResult;
use scirs2_core::ndarray::{ArrayView, Ix2};
pub trait Metric {
fn compute(
&self,
predictions: &ArrayView<f64, Ix2>,
targets: &ArrayView<f64, Ix2>,
) -> TrainResult<f64>;
fn name(&self) -> &str;
fn reset(&mut self) {}
}
mod advanced;
mod basic;
mod calibration;
mod ranking;
mod tracker;
mod vision;
pub use basic::{Accuracy, F1Score, Precision, Recall};
pub use advanced::{
BalancedAccuracy, CohensKappa, ConfusionMatrix, MatthewsCorrelationCoefficient,
PerClassMetrics, RocCurve,
};
pub use ranking::{NormalizedDiscountedCumulativeGain, TopKAccuracy};
pub use vision::{DiceCoefficient, IoU, MeanAveragePrecision, MeanIoU};
pub use calibration::{ExpectedCalibrationError, MaximumCalibrationError};
pub use tracker::MetricTracker;