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 decompositionRidge— L2-regularized regression via Cholesky decompositionRidgeCV— Ridge with built-in cross-validated alpha selectionLasso— L1-regularized regression via coordinate descentLassoCV— Lasso with built-in cross-validated alpha selectionElasticNet— Combined L1/L2 regularization via coordinate descentElasticNetCV— ElasticNet with cross-validated (alpha, l1_ratio) selectionBayesianRidge— Bayesian Ridge with automatic regularization tuningHuberRegressor— Robust regression via IRLS with Huber lossLogisticRegression— 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 implementsFit. - Calling
fit()produces a new fitted type (e.g.,FittedLinearRegression<F>) that implementsPredict. - 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§
- Classifier
Score - Mean-accuracy
score(x, y)exposed on every fitted classifier in this crate via a blanket impl overPredict<Array2<F>, Output=Array1<usize>>. - Regressor
Score - R²
score(x, y)exposed on every fitted regressor in this crate via a blanket impl overPredict<Array2<F>, Output=Array1<F>>.