use crate::clustering::{ClusteringError, ClusteringResult};
use ndarray::Array2;
#[derive(Debug, Clone)]
pub struct DbscanConfig {
pub eps: f64,
pub min_samples: usize,
}
impl Default for DbscanConfig {
fn default() -> Self {
Self {
eps: 0.5,
min_samples: 5,
}
}
}
#[derive(Debug, Clone)]
pub struct DbscanResult {
pub assignments: Vec<i32>,
pub n_clusters: usize,
pub n_noise: usize,
}
pub struct Dbscan;
impl Dbscan {
pub fn fit(data: &Array2<f64>, _config: &DbscanConfig) -> ClusteringResult<DbscanResult> {
if data.nrows() == 0 {
return Err(ClusteringError::EmptyData);
}
Err(ClusteringError::ClusteringFailed(
"DBSCAN clustering is temporarily disabled due to linfa-clustering API limitations. \
Please use K-means or GMM clustering instead.".to_string()
))
}
}