sklears_model_selection/epistemic_uncertainty/
uncertainty_utilities.rs1use super::aleatoric_quantifier::AleatoricUncertaintyQuantifier;
2use super::epistemic_quantifier::EpistemicUncertaintyQuantifier;
3use super::uncertainty_config::*;
4use super::uncertainty_quantifier::UncertaintyQuantifier;
5use super::uncertainty_results::*;
6use scirs2_core::ndarray::{Array1, Array2};
7
8pub fn quantify_epistemic_uncertainty<E, P>(
9 models: &[E],
10 x: &Array2<f64>,
11 y_true: Option<&Array1<f64>>,
12 config: Option<EpistemicUncertaintyConfig>,
13) -> Result<EpistemicUncertaintyResult, Box<dyn std::error::Error>>
14where
15 E: Clone,
16 P: Clone,
17{
18 let quantifier = match config {
19 Some(cfg) => EpistemicUncertaintyQuantifier::with_config(cfg),
20 None => EpistemicUncertaintyQuantifier::new(),
21 };
22
23 quantifier.quantify::<E, P>(models, x, y_true)
24}
25
26pub fn quantify_aleatoric_uncertainty<E, P>(
27 models: &[E],
28 x: &Array2<f64>,
29 y_true: Option<&Array1<f64>>,
30 config: Option<AleatoricUncertaintyConfig>,
31) -> Result<AleatoricUncertaintyResult, Box<dyn std::error::Error>>
32where
33 E: Clone,
34 P: Clone,
35{
36 let quantifier = match config {
37 Some(cfg) => AleatoricUncertaintyQuantifier::with_config(cfg),
38 None => AleatoricUncertaintyQuantifier::new(),
39 };
40
41 quantifier.quantify::<E, P>(models, x, y_true)
42}
43
44pub fn quantify_uncertainty<E, P>(
45 models: &[E],
46 x: &Array2<f64>,
47 y_true: Option<&Array1<f64>>,
48 config: Option<UncertaintyQuantificationConfig>,
49) -> Result<UncertaintyQuantificationResult, Box<dyn std::error::Error>>
50where
51 E: Clone,
52 P: Clone,
53{
54 let quantifier = match config {
55 Some(cfg) => UncertaintyQuantifier::with_config(cfg),
56 None => UncertaintyQuantifier::new(),
57 };
58
59 quantifier.quantify::<E, P>(models, x, y_true)
60}