use serde::{Deserialize, Serialize};
use smartcore::{
linalg::basic::matrix::DenseMatrix,
linear::linear_regression::{LinearRegression, LinearRegressionParameters},
};
#[allow(clippy::upper_case_acronyms)]
type LR = LinearRegression<f32, f32, DenseMatrix<f32>, Vec<f32>>;
#[derive(Serialize, Deserialize)]
pub struct LRModel {
models: Vec<LR>,
window_size: usize,
}
impl super::Classical<LR, LinearRegressionParameters> for LRModel {
fn new(models: Vec<LR>, window_size: usize) -> Self {
Self { models, window_size }
}
fn name(&self) -> String {
format!("muffler-linear_regression-{}", self.window_size)
}
fn models(&self) -> &[LR] {
&self.models
}
fn window_size(&self) -> usize {
self.window_size
}
}