use linfa::metrics::ToConfusionMatrix;
use linfa::traits::{Fit, Predict};
use linfa_bayes::{MultinomialNb, Result};
fn main() -> Result<()> {
let (train, valid) = linfa_datasets::winequality()
.map_targets(|x| if *x > 6 { "good" } else { "bad" })
.split_with_ratio(0.9);
let model = MultinomialNb::params().fit(&train)?;
let pred = model.predict(&valid);
let cm = pred.confusion_matrix(&valid)?;
println!("{cm:?}");
println!("accuracy {}, MCC {}", cm.accuracy(), cm.mcc());
Ok(())
}