pub struct GaussianNbModel { /* private fields */ }Expand description
Fitted Gaussian Naive Bayes model.
Holds the sorted class labels, the per-class log priors, and the per-class
per-feature Gaussian mean and (smoothed) variance. Construct one with
gaussian_nb_fit.
Implementations§
Source§impl GaussianNbModel
impl GaussianNbModel
Sourcepub fn classes(&self) -> &[usize]
pub fn classes(&self) -> &[usize]
Returns the sorted class labels, in Self::predict_log_proba column
order.
Sourcepub fn predict(&self, x: &[Vec<f64>]) -> Result<Vec<usize>>
pub fn predict(&self, x: &[Vec<f64>]) -> Result<Vec<usize>>
Predicts the class label for every sample in x (ties break low).
§Arguments
x— rows to classify; each must have the fitted feature count.
§Returns
One predicted class label per input row, in input order.
§Errors
Error::InvalidInput if any row’s length differs from the fitted
feature count.
§Examples
use stats_claw::algorithms::classification::naive_bayes::gaussian_nb_fit;
let x = vec![vec![0.0], vec![0.5], vec![9.0], vec![9.5]];
let y = vec![0, 0, 1, 1];
let model = gaussian_nb_fit(&x, &y)?;
assert_eq!(model.predict(&[vec![9.1]])?, vec![1]);Sourcepub fn predict_log_proba(&self, x: &[Vec<f64>]) -> Result<Vec<Vec<f64>>>
pub fn predict_log_proba(&self, x: &[Vec<f64>]) -> Result<Vec<Vec<f64>>>
Predicts the normalized log posteriors for every sample in x.
Each returned row has one entry per class (in Self::classes order)
whose exponentials sum to 1.
§Arguments
x— rows to score; each must have the fitted feature count.
§Returns
One log-posterior row per input row.
§Errors
Error::InvalidInput if any row’s length differs from the fitted
feature count.
§Examples
use stats_claw::algorithms::classification::naive_bayes::gaussian_nb_fit;
let x = vec![vec![0.0], vec![0.5], vec![9.0], vec![9.5]];
let y = vec![0, 0, 1, 1];
let model = gaussian_nb_fit(&x, &y)?;
let lp = model.predict_log_proba(&[vec![0.1]])?;
let total: f64 = lp[0].iter().map(|v| v.exp()).sum();
assert!((total - 1.0).abs() < 1e-12, "posteriors summed to {total}");Sourcepub fn classification_result(
&self,
x: &[Vec<f64>],
y_true: &[usize],
) -> Result<ClassificationResult>
pub fn classification_result( &self, x: &[Vec<f64>], y_true: &[usize], ) -> Result<ClassificationResult>
Builds a populated ClassificationResult from predictions on
(x, y_true): accuracy plus macro-averaged precision / recall / F1.
§Arguments
x— evaluation design matrix.y_true— the true class labels, one per row ofx.
§Returns
A ClassificationResult scored on (x, y_true).
§Errors
Error::InvalidInputon anx/y_truelength mismatch or a row whose feature count differs from the fitted model.Error::EmptyInputifxis empty.
§Examples
use stats_claw::algorithms::classification::naive_bayes::gaussian_nb_fit;
let x = vec![vec![0.0], vec![0.5], vec![9.0], vec![9.5]];
let y = vec![0, 0, 1, 1];
let model = gaussian_nb_fit(&x, &y)?;
let result = model.classification_result(&x, &y)?;
assert!((result.accuracy - 1.0).abs() < 1e-12, "accuracy {}", result.accuracy);Trait Implementations§
Source§impl Clone for GaussianNbModel
impl Clone for GaussianNbModel
Source§fn clone(&self) -> GaussianNbModel
fn clone(&self) -> GaussianNbModel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more