anofox_ml_metrics/lib.rs
1//! Classification and regression evaluation metrics.
2//!
3//! This crate provides functions for evaluating machine learning model
4//! performance, including classification metrics ([`accuracy_score`],
5//! [`precision_score`], [`recall_score`], [`f1_score_avg`],
6//! [`confusion_matrix`]) and regression metrics ([`mse`], [`mae`],
7//! [`r2_score`]).
8//!
9//! # Examples
10//!
11//! ```
12//! use ndarray::array;
13//! use anofox_ml_metrics::{accuracy_score, mse};
14//!
15//! // Classification: compute accuracy
16//! let y_true = array![0.0, 1.0, 1.0, 0.0];
17//! let y_pred = array![0.0, 1.0, 0.0, 0.0];
18//! let acc: f64 = accuracy_score(&y_true, &y_pred).unwrap();
19//! assert!((acc - 0.75).abs() < 1e-10);
20//!
21//! // Regression: compute mean squared error
22//! let actual = array![1.0, 2.0, 3.0];
23//! let predicted = array![1.5, 2.5, 3.5];
24//! let error: f64 = mse(&actual, &predicted).unwrap();
25//! assert!((error - 0.25).abs() < 1e-10);
26//! ```
27
28pub mod classification;
29pub mod classification_extended;
30pub mod classification_extra;
31pub mod clustering;
32pub mod clustering_extra;
33pub mod curves;
34pub mod regression;
35pub mod regression_extended;
36pub mod regression_extra;
37
38pub use classification::{
39 accuracy_score, confusion_matrix, f1_score, f1_score_avg, precision, precision_score, recall,
40 recall_score, Average,
41};
42pub use classification_extended::{average_precision_score, matthews_corrcoef, roc_auc_score};
43pub use classification_extra::{balanced_accuracy_score, cohen_kappa_score, log_loss};
44pub use clustering::silhouette_score;
45pub use clustering_extra::{adjusted_rand_score, normalized_mutual_info_score};
46pub use curves::{brier_score_loss, precision_recall_curve, roc_curve};
47pub use regression::{mae, mse, r2_score};
48pub use regression_extended::{
49 explained_variance_score, max_error, mean_absolute_percentage_error,
50};
51pub use regression_extra::{mean_squared_log_error, median_absolute_error};