Skip to main content

Crate ferrolearn_linear

Crate ferrolearn_linear 

Source
Expand description

§ferrolearn-linear

Linear models for the ferrolearn machine learning framework.

This crate provides implementations of the most common linear models for both regression and classification tasks:

  • LinearRegression — Ordinary Least Squares via QR decomposition
  • Ridge — L2-regularized regression via Cholesky decomposition
  • RidgeCV — Ridge with built-in cross-validated alpha selection
  • Lasso — L1-regularized regression via coordinate descent
  • LassoCV — Lasso with built-in cross-validated alpha selection
  • ElasticNet — Combined L1/L2 regularization via coordinate descent
  • ElasticNetCV — ElasticNet with cross-validated (alpha, l1_ratio) selection
  • BayesianRidge — Bayesian Ridge with automatic regularization tuning
  • HuberRegressor — Robust regression via IRLS with Huber loss
  • LogisticRegression — Binary and multiclass classification via L-BFGS

All models implement the ferrolearn_core::Fit and ferrolearn_core::Predict traits, and produce fitted types that implement ferrolearn_core::introspection::HasCoefficients.

§Design

Each model follows the compile-time safety pattern:

  • The unfitted struct (e.g., LinearRegression<F>) holds hyperparameters and implements Fit.
  • Calling fit() produces a new fitted type (e.g., FittedLinearRegression<F>) that implements Predict.
  • Calling predict() on an unfitted model is a compile-time error.

§Pipeline Integration

All models implement PipelineEstimator for f64, allowing them to be used as the final step in a Pipeline.

§Float Generics

All models are generic over F: num_traits::Float + Send + Sync + 'static, supporting both f32 and f64.

Re-exports§

pub use ard::ARDRegression;
pub use ard::FittedARDRegression;
pub use bayesian_ridge::BayesianRidge;
pub use bayesian_ridge::FittedBayesianRidge;
pub use elastic_net::ElasticNet;
pub use elastic_net::FittedElasticNet;
pub use elastic_net_cv::ElasticNetCV;
pub use elastic_net_cv::FittedElasticNetCV;
pub use glm::FittedGLMRegressor;
pub use glm::GLMFamily;
pub use glm::GLMRegressor;
pub use glm::GammaRegressor;
pub use glm::PoissonRegressor;
pub use glm::TweedieRegressor;
pub use huber_regressor::FittedHuberRegressor;
pub use huber_regressor::HuberRegressor;
pub use isotonic::FittedIsotonicRegression;
pub use isotonic::IsotonicRegression;
pub use lars::FittedLars;
pub use lars::FittedLassoLars;
pub use lars::Lars;
pub use lars::LassoLars;
pub use lasso::FittedLasso;
pub use lasso::Lasso;
pub use lasso_cv::FittedLassoCV;
pub use lasso_cv::LassoCV;
pub use lda::FittedLDA;
pub use lda::LDA;
pub use linear_regression::FittedLinearRegression;
pub use linear_regression::LinearRegression;
pub use linear_svc::FittedLinearSVC;
pub use linear_svc::LinearSVC;
pub use linear_svc::LinearSVCLoss;
pub use linear_svr::FittedLinearSVR;
pub use linear_svr::LinearSVR;
pub use linear_svr::LinearSVRLoss;
pub use logistic_regression::FittedLogisticRegression;
pub use logistic_regression::LogisticRegression;
pub use logistic_regression_cv::FittedLogisticRegressionCV;
pub use logistic_regression_cv::LogisticRegressionCV;
pub use nu_svm::FittedNuSVC;
pub use nu_svm::FittedNuSVR;
pub use nu_svm::NuSVC;
pub use nu_svm::NuSVR;
pub use omp::FittedOMP;
pub use omp::OrthogonalMatchingPursuit;
pub use one_class_svm::FittedOneClassSVM;
pub use one_class_svm::OneClassSVM;
pub use qda::FittedQDA;
pub use qda::QDA;
pub use quantile_regressor::FittedQuantileRegressor;
pub use quantile_regressor::QuantileRegressor;
pub use ransac::FittedRANSACRegressor;
pub use ransac::RANSACRegressor;
pub use ridge::FittedRidge;
pub use ridge::Ridge;
pub use ridge_classifier::FittedRidgeClassifier;
pub use ridge_classifier::RidgeClassifier;
pub use ridge_cv::FittedRidgeCV;
pub use ridge_cv::RidgeCV;
pub use sgd::FittedSGDClassifier;
pub use sgd::FittedSGDRegressor;
pub use sgd::SGDClassifier;
pub use sgd::SGDRegressor;
pub use svm::FittedSVC;
pub use svm::FittedSVR;
pub use svm::Kernel;
pub use svm::LinearKernel;
pub use svm::PolynomialKernel;
pub use svm::RbfKernel;
pub use svm::SVC;
pub use svm::SVR;
pub use svm::SigmoidKernel;

Modules§

ard
Automatic Relevance Determination (ARD) Regression.
bayesian_ridge
Bayesian Ridge Regression.
elastic_net
ElasticNet regression (combined L1 and L2 regularization).
elastic_net_cv
ElasticNet regression with built-in cross-validation for alpha and l1_ratio selection.
glm
Generalized Linear Models (GLM).
huber_regressor
Huber Regressor — robust regression via IRLS.
isotonic
Isotonic (monotonic) regression.
lars
Least Angle Regression (LARS) and Lasso-LARS.
lasso
Lasso regression (L1-regularized linear regression).
lasso_cv
Lasso regression with built-in cross-validation for alpha selection.
lda
Linear Discriminant Analysis (LDA).
linear_regression
Ordinary Least Squares linear regression.
linear_svc
Linear Support Vector Classifier.
linear_svr
Linear Support Vector Regressor.
logistic_regression
Logistic regression classifier.
logistic_regression_cv
Logistic Regression with built-in cross-validated C selection.
nu_svm
Nu-parameterized Support Vector Machines.
omp
Orthogonal Matching Pursuit (OMP).
one_class_svm
One-Class SVM for novelty detection.
qda
Quadratic Discriminant Analysis (QDA).
quantile_regressor
Quantile Regression via IRLS on the pinball loss.
ransac
RANSAC (RANdom SAmple Consensus) robust regression.
ridge
Ridge regression (L2-regularized linear regression).
ridge_classifier
Ridge Classifier.
ridge_cv
Ridge regression with built-in cross-validation for alpha selection.
sgd
Stochastic Gradient Descent (SGD) linear models.
svm
Support Vector Machine with kernel trick.

Traits§

ClassifierScore
Mean-accuracy score(x, y) exposed on every fitted classifier in this crate via a blanket impl over Predict<Array2<F>, Output=Array1<usize>>.
RegressorScore
score(x, y) exposed on every fitted regressor in this crate via a blanket impl over Predict<Array2<F>, Output=Array1<F>>.