pub struct MultiClass { /* private fields */ }Expand description
Multi-class Tsetlin Machine using one-vs-all strategy.
Each class has its own set of clauses. Prediction is the class with the highest vote sum.
§Example
use tsetlin_rs::{Config, MultiClass};
let config = Config::builder().clauses(100).features(4).build().unwrap();
let mut tm = MultiClass::new(config, 3, 50);
// Train on data where label is class index (0, 1, or 2)
let x = vec![vec![1, 1, 0, 0], vec![0, 0, 1, 1]];
let y = vec![0, 1];
tm.fit(&x, &y, 100, 42);Implementations§
Source§impl MultiClass
impl MultiClass
Sourcepub fn new(config: Config, n_classes: usize, threshold: i32) -> Self
pub fn new(config: Config, n_classes: usize, threshold: i32) -> Self
Creates multi-class machine with given number of classes.
§Arguments
config- Machine configuration (clauses, features, etc.)n_classes- Number of output classesthreshold- Vote threshold for training
Sourcepub fn class_votes(&self, x: &[u8]) -> Vec<f32>
pub fn class_votes(&self, x: &[u8]) -> Vec<f32>
Computes vote sums for each class.
Sourcepub fn predict(&self, x: &[u8]) -> usize
pub fn predict(&self, x: &[u8]) -> usize
Predicts class with highest vote sum.
Returns 0 if votes are empty or contain NaN.
Sourcepub fn train_one<R: Rng>(&mut self, x: &[u8], y: usize, rng: &mut R)
pub fn train_one<R: Rng>(&mut self, x: &[u8], y: usize, rng: &mut R)
Trains on a single example.
Sourcepub fn fit(&mut self, x: &[Vec<u8>], y: &[usize], epochs: usize, seed: u64)
pub fn fit(&mut self, x: &[Vec<u8>], y: &[usize], epochs: usize, seed: u64)
Trains for given number of epochs.
§Arguments
x- Training inputs (binary features)y- Class labels (0 to n_classes-1)epochs- Number of training epochsseed- Random seed for reproducibility
Sourcepub fn evaluate(&self, x: &[Vec<u8>], y: &[usize]) -> f32
pub fn evaluate(&self, x: &[Vec<u8>], y: &[usize]) -> f32
Evaluates classification accuracy on test data.
Returns fraction of correct predictions (0.0 to 1.0).
Sourcepub fn quick(
n_clauses: usize,
n_features: usize,
n_classes: usize,
threshold: i32,
) -> Self
pub fn quick( n_clauses: usize, n_features: usize, n_classes: usize, threshold: i32, ) -> Self
Quick constructor with sensible defaults.
§Panics
Panics if n_clauses is odd or zero, or n_features is zero.
Trait Implementations§
Source§impl Clone for MultiClass
impl Clone for MultiClass
Source§fn clone(&self) -> MultiClass
fn clone(&self) -> MultiClass
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MultiClass
impl Debug for MultiClass
Source§impl TsetlinModel<Vec<u8>, usize> for MultiClass
impl TsetlinModel<Vec<u8>, usize> for MultiClass
Source§fn fit(&mut self, x: &[Vec<u8>], y: &[usize], epochs: usize, seed: u64)
fn fit(&mut self, x: &[Vec<u8>], y: &[usize], epochs: usize, seed: u64)
Trains the model on labeled data. Read more
Source§fn evaluate(&self, x: &[Vec<u8>], y: &[usize]) -> f32
fn evaluate(&self, x: &[Vec<u8>], y: &[usize]) -> f32
Evaluates model accuracy/performance on test data. Read more
Source§fn predict_batch(&self, xs: &[X]) -> Vec<Y>
fn predict_batch(&self, xs: &[X]) -> Vec<Y>
Batch prediction for multiple samples.
Auto Trait Implementations§
impl Freeze for MultiClass
impl RefUnwindSafe for MultiClass
impl Send for MultiClass
impl Sync for MultiClass
impl Unpin for MultiClass
impl UnwindSafe for MultiClass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more