use serde::{Deserialize, Serialize};
use smartcore::{
linalg::basic::matrix::DenseMatrix,
tree::decision_tree_regressor::{DecisionTreeRegressor, DecisionTreeRegressorParameters},
};
#[allow(clippy::upper_case_acronyms)]
type DTR = DecisionTreeRegressor<f32, f32, DenseMatrix<f32>, Vec<f32>>;
#[derive(Serialize, Deserialize)]
pub struct DTModel {
models: Vec<DTR>,
window_size: usize,
}
impl super::Classical<DTR, DecisionTreeRegressorParameters> for DTModel {
fn new(models: Vec<DTR>, window_size: usize) -> Self {
Self { models, window_size }
}
fn name(&self) -> String {
format!("muffler-decision_tree-{}", self.window_size)
}
fn models(&self) -> &[DTR] {
&self.models
}
fn window_size(&self) -> usize {
self.window_size
}
}