trustformers_debug/interpretability/
shap.rs1use chrono::{DateTime, Utc};
7use serde::{Deserialize, Serialize};
8use std::collections::HashMap;
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct ShapAnalysisResult {
13 pub timestamp: DateTime<Utc>,
15 pub shap_values: HashMap<String, f64>,
17 pub feature_names: Vec<String>,
19 pub base_value: f64,
21 pub prediction: f64,
23 pub feature_contributions: Vec<FeatureContribution>,
25 pub top_positive_features: Vec<FeatureContribution>,
27 pub top_negative_features: Vec<FeatureContribution>,
29 pub interaction_values: Option<HashMap<(String, String), f64>>,
31 pub summary: ShapSummary,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct FeatureContribution {
38 pub feature_name: String,
40 pub shap_value: f64,
42 pub feature_value: f64,
44 pub importance_rank: usize,
46 pub contribution_percentage: f64,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
52pub struct ShapSummary {
53 pub total_positive_contribution: f64,
55 pub total_negative_contribution: f64,
57 pub num_important_features: usize,
59 pub importance_distribution: HashMap<String, f64>,
61 pub explanation_completeness: f64,
63}