rustkernel_ml/
lib.rs

1//! # RustKernel Statistical ML
2//!
3//! GPU-accelerated machine learning kernels for clustering, anomaly detection, and regression.
4//!
5//! ## Kernels
6//!
7//! ### Clustering (3 kernels)
8//! - `KMeans` - Lloyd's algorithm with K-Means++ initialization
9//! - `DBSCAN` - Density-based clustering with GPU union-find
10//! - `HierarchicalClustering` - Agglomerative clustering
11//!
12//! ### Anomaly Detection (2 kernels)
13//! - `IsolationForest` - Ensemble of isolation trees
14//! - `LocalOutlierFactor` - k-NN density estimation
15//!
16//! ### Streaming Anomaly Detection (2 kernels)
17//! - `StreamingIsolationForest` - Online anomaly detection with sliding window
18//! - `AdaptiveThreshold` - Self-adjusting thresholds with drift detection
19//!
20//! ### Ensemble (1 kernel)
21//! - `EnsembleVoting` - Weighted majority voting
22//!
23//! ### Regression (2 kernels)
24//! - `LinearRegression` - OLS via normal equations
25//! - `RidgeRegression` - L2 regularization
26//!
27//! ### Explainability (2 kernels)
28//! - `SHAPValues` - Kernel SHAP for feature explanations
29//! - `FeatureImportance` - Permutation-based feature importance
30//!
31//! ### NLP / LLM Integration (2 kernels)
32//! - `EmbeddingGeneration` - Text embedding via hash-based features
33//! - `SemanticSimilarity` - Multi-metric semantic similarity
34//!
35//! ### Federated Learning (1 kernel)
36//! - `SecureAggregation` - Privacy-preserving model aggregation
37//!
38//! ### Healthcare Analytics (2 kernels)
39//! - `DrugInteractionPrediction` - Multi-drug interaction prediction
40//! - `ClinicalPathwayConformance` - Treatment guideline checking
41
42#![warn(missing_docs)]
43
44pub mod anomaly;
45pub mod clustering;
46pub mod ensemble;
47pub mod explainability;
48pub mod federated;
49pub mod healthcare;
50pub mod messages;
51pub mod nlp;
52pub mod regression;
53pub mod ring_messages;
54pub mod streaming;
55pub mod types;
56
57/// Prelude for convenient imports.
58pub mod prelude {
59    pub use crate::anomaly::*;
60    pub use crate::clustering::*;
61    pub use crate::ensemble::*;
62    pub use crate::explainability::*;
63    pub use crate::federated::*;
64    pub use crate::healthcare::*;
65    pub use crate::messages::*;
66    pub use crate::nlp::*;
67    pub use crate::regression::*;
68    pub use crate::ring_messages::*;
69    pub use crate::streaming::*;
70    pub use crate::types::*;
71}
72
73/// Register all ML kernels with a registry.
74pub fn register_all(
75    registry: &rustkernel_core::registry::KernelRegistry,
76) -> rustkernel_core::error::Result<()> {
77    use rustkernel_core::traits::GpuKernel;
78
79    tracing::info!("Registering statistical ML kernels");
80
81    // Clustering kernels (3)
82    registry.register_metadata(clustering::KMeans::new().metadata().clone())?;
83    registry.register_metadata(clustering::DBSCAN::new().metadata().clone())?;
84    registry.register_metadata(clustering::HierarchicalClustering::new().metadata().clone())?;
85
86    // Anomaly detection kernels (2)
87    registry.register_metadata(anomaly::IsolationForest::new().metadata().clone())?;
88    registry.register_metadata(anomaly::LocalOutlierFactor::new().metadata().clone())?;
89
90    // Streaming anomaly detection kernels (2)
91    registry.register_metadata(
92        streaming::StreamingIsolationForest::new()
93            .metadata()
94            .clone(),
95    )?;
96    registry.register_metadata(streaming::AdaptiveThreshold::new().metadata().clone())?;
97
98    // Ensemble kernel (1)
99    registry.register_metadata(ensemble::EnsembleVoting::new().metadata().clone())?;
100
101    // Regression kernels (2)
102    registry.register_metadata(regression::LinearRegression::new().metadata().clone())?;
103    registry.register_metadata(regression::RidgeRegression::new().metadata().clone())?;
104
105    // Explainability kernels (2)
106    registry.register_metadata(explainability::SHAPValues::new().metadata().clone())?;
107    registry.register_metadata(explainability::FeatureImportance::new().metadata().clone())?;
108
109    // NLP / LLM Integration kernels (2)
110    registry.register_metadata(nlp::EmbeddingGeneration::new().metadata().clone())?;
111    registry.register_metadata(nlp::SemanticSimilarity::new().metadata().clone())?;
112
113    // Federated Learning kernels (1)
114    registry.register_metadata(federated::SecureAggregation::new().metadata().clone())?;
115
116    // Healthcare Analytics kernels (2)
117    registry.register_metadata(
118        healthcare::DrugInteractionPrediction::new()
119            .metadata()
120            .clone(),
121    )?;
122    registry.register_metadata(
123        healthcare::ClinicalPathwayConformance::new()
124            .metadata()
125            .clone(),
126    )?;
127
128    tracing::info!("Registered 17 statistical ML kernels");
129    Ok(())
130}
131
132#[cfg(test)]
133mod tests {
134    use super::*;
135    use rustkernel_core::registry::KernelRegistry;
136
137    #[test]
138    fn test_register_all() {
139        let registry = KernelRegistry::new();
140        register_all(&registry).expect("Failed to register ML kernels");
141        assert_eq!(registry.total_count(), 17);
142    }
143}