Expand description
Core traits and types for the anofox-ml machine learning library.
This crate defines the foundational traits that all anofox-ml estimators and
transformers implement. It uses a type-state pattern: calling Fit::fit
or FitUnsupervised::fit on an unfitted configuration struct returns a
distinct fitted type that implements Predict or Transform. This
makes it a compile-time error to call predict on an unfitted model.
The crate also provides the Float trait (a unified bound for f32/f64),
error types, train/test splitting utilities, and a Pipeline for chaining
transformers with an estimator.
§Examples
use anofox_ml_core::{Fit, Predict, FitUnsupervised, Transform, Float};
// The type-state pattern in action:
// 1. `Fit` takes an unfitted config and returns a `Fitted` type.
// 2. Only the `Fitted` type implements `Predict`.
fn example_trait_bounds<F, M, FM>(model: &M, x: &ndarray::Array2<F>, y: &ndarray::Array1<F>)
where
F: Float,
M: Fit<F, Fitted = FM>,
FM: Predict<F>,
{
let fitted = model.fit(x, y).unwrap();
let _predictions = fitted.predict(x).unwrap();
}Re-exports§
pub use column_transformer::ColumnSelector;pub use column_transformer::ColumnTransformer;pub use column_transformer::Remainder;pub use error::Result;pub use error::RustMlError;pub use feature_union::FeatureUnion;pub use feature_union::FittedFeatureUnion;pub use float::Float;pub use function_transformer::FunctionTransformer;pub use halving::halving_grid_search_cv;pub use halving::halving_random_search_cv;pub use halving::HalvingResult;pub use inspection::permutation_importance;pub use inspection::PermutationImportance;pub use multi_output::ClassifierChain;pub use multi_output::FittedClassifierChain;pub use multi_output::FittedMultiOutputClassifier;pub use multi_output::FittedMultiOutputRegressor;pub use multi_output::FittedRegressorChain;pub use multi_output::MultiOutputClassifier;pub use multi_output::MultiOutputRegressor;pub use multi_output::RegressorChain;pub use pipeline::FitPredict;pub use pipeline::FitTransform;pub use pipeline::FittedPipeline;pub use pipeline::Pipeline;pub use pipeline::PredictStep;pub use pipeline::TransformStep;pub use sparse::CsrMatrix;pub use traits::ClassifierScore;pub use traits::DecisionFunction;pub use traits::Fit;pub use traits::FitUnsupervised;pub use traits::FitUnsupervisedWeighted;pub use traits::FitWeighted;pub use traits::InverseTransform;pub use traits::PartialFit;pub use traits::Predict;pub use traits::PredictLogProba;pub use traits::PredictProba;pub use traits::RegressorScore;pub use traits::Transform;pub use utils::cross_val_predict;pub use utils::cross_val_score;pub use utils::cross_val_score_stratified;pub use utils::cross_validate;pub use utils::grid_search_cv;pub use utils::group_k_fold;pub use utils::k_fold;pub use utils::learning_curve;pub use utils::leave_one_out;pub use utils::leave_p_out;pub use utils::randomized_search_cv;pub use utils::repeated_k_fold;pub use utils::repeated_stratified_k_fold;pub use utils::shuffle_split;pub use utils::stratified_k_fold;pub use utils::stratified_shuffle_split;pub use utils::time_series_split;pub use utils::train_test_split;pub use utils::validation_curve;pub use utils::CrossValidateResult;pub use utils::GridSearchResult;
Modules§
- column_
transformer - ColumnTransformer — apply different transformers to different column subsets.
- error
- feature_
union - float
- function_
transformer - FunctionTransformer — wraps a closure as a pipeline-compatible transformer.
- halving
- Successive halving for hyperparameter search.
- inspection
- Model inspection utilities: permutation importance.
- multi_
output - Multi-output meta-estimators: per-output regressor / classifier wrappers.
- persistence
- Model persistence: save and load fitted models in JSON or bincode format.
- pipeline
- sparse
- Compressed Sparse Row matrix type, intended for high-vocab text vectorisation output and downstream sparse-friendly estimators.
- traits
- utils