use linfa::prelude::*;
use linfa_linear::{Result, TweedieRegressor};
use ndarray::Axis;
fn main() -> Result<(), f64> {
let dataset = linfa_datasets::diabetes();
let lin_reg = TweedieRegressor::params().power(0.).alpha(0.);
let model = lin_reg.fit(&dataset)?;
println!("intercept: {}", model.intercept);
println!("parameters: {}", model.coef);
let ypred = model.predict(&dataset);
let loss = (dataset.targets() - &ypred.insert_axis(Axis(1)))
.mapv(|x| x.abs())
.mean();
println!("{loss:?}");
Ok(())
}