1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! Information-theoretic clustering evaluation metrics
//!
//! This module provides comprehensive information-theoretic metrics for evaluating
//! clustering algorithms when ground truth labels are available. The metrics are
//! organized into focused submodules for better maintainability.
//!
//! # Modules
//!
//! - [`mutual_information`] - Core mutual information metrics and variants
//! - [`rand_metrics`] - Rand-based metrics (Rand index, ARI, Fowlkes-Mallows)
//! - [`v_measure`] - V-measure score and its components (homogeneity, completeness)
//! - [`advanced`] - Advanced information measures (Jensen-Shannon, variation of information)
//!
//! # Quick Start
//!
//! ```rust
//! use scirs2_cluster::metrics::information_theoretic::*;
//! use scirs2_core::ndarray::Array1;
//!
//! let true_labels = Array1::from_vec(vec![0, 0, 1, 1, 2, 2]);
//! let pred_labels = Array1::from_vec(vec![0, 0, 1, 1, 1, 2]);
//!
//! // Basic metrics
//! let mi: f64 = mutual_info_score(true_labels.view(), pred_labels.view()).expect("operation should succeed");
//! let nmi: f64 = normalized_mutual_info_score(true_labels.view(), pred_labels.view()).expect("operation should succeed");
//! let ari: f64 = adjusted_rand_score(true_labels.view(), pred_labels.view()).expect("operation should succeed");
//!
//! // V-measure components
//! let (h, c, v): (f64, f64, f64) = homogeneity_completeness_v_measure(
//! true_labels.view(), pred_labels.view()
//! ).expect("operation should succeed");
//!
//! // Advanced measures
//! let js: f64 = jensen_shannon_divergence(true_labels.view(), pred_labels.view()).expect("operation should succeed");
//! let vi: f64 = normalized_variation_of_information(true_labels.view(), pred_labels.view()).expect("operation should succeed");
//! ```
// Re-export submodules
// Re-export key functions for convenience
pub use ;
pub use ;
pub use ;
pub use ;