sklears-linear
High-performance linear models for Rust with 14-20x speedup (validated) over scikit-learn, featuring advanced solvers, numerical stability, and GPU acceleration.
Latest release:
0.1.0-beta.1(January 1, 2026). See the workspace release notes for highlights and upgrade guidance.
Overview
sklears-linear provides comprehensive linear modeling capabilities:
- Core Models: LinearRegression, Ridge, Lasso, ElasticNet, LogisticRegression
- Advanced Solvers: ADMM, coordinate descent, proximal gradient, L-BFGS
- Numerical Stability: Condition checking, iterative refinement, rank-deficient handling
- Performance: SIMD optimization, sparse matrix support, parallel training
- Production Ready: Cross-validation, early stopping, warm start
Quick Start
use ;
use array;
// Basic linear regression
let model = default;
let X = array!;
let y = array!;
let fitted = model.fit?;
let predictions = fitted.predict?;
// Ridge regression with regularization
let ridge = builder
.alpha
.solver
.build;
// Lasso with coordinate descent
let lasso = builder
.alpha
.max_iter
.tol
.build;
// ElasticNet combining L1 and L2
let elastic = builder
.alpha
.l1_ratio
.build;
Advanced Features
Solvers
use ;
// ADMM for distributed optimization
let admm = builder
.rho
.max_iter
.abstol
.reltol
.build;
// Coordinate descent for L1 regularization
let cd = builder
.selection_rule
.build;
Numerical Stability
use ;
// Automatic method selection based on condition number
let stable_model = builder
.solver // Chooses based on matrix condition
.check_condition
.build;
// Iterative refinement for ill-conditioned problems
let refined = builder
.solver
.iterative_refinement
.build;
Sparse Data Support
use ;
use CsMat;
// Efficient sparse matrix operations
let sparse_X = from_dense;
let model = default;
let fitted = model.fit?;
Bayesian Linear Models
use ;
// Bayesian ridge with automatic relevance determination
let bayesian = builder
.n_iter
.compute_score
.build;
// Variational Bayes for uncertainty quantification
let vb = builder
.credible_interval
.build;
let fitted = vb.fit?;
let = fitted.predict_with_uncertainty?;
Performance Features
Parallel Training
let model = builder
.alpha
.n_jobs // Use 4 threads
.build;
Cross-Validation
use ;
// Ridge with built-in cross-validation
let ridge_cv = builder
.alphas
.cv
.build;
// Lasso with efficient path computation
let lasso_cv = builder
.n_alphas
.cv
.build;
Early Stopping
let model = builder
.alpha
.early_stopping
.validation_fraction
.n_iter_no_change
.build;
Specialized Regression
Robust Regression
use ;
// Huber regression for outliers
let huber = builder
.epsilon
.alpha
.build;
// RANSAC for severe outliers
let ransac = builder
.min_samples
.residual_threshold
.build;
Quantile Regression
use QuantileRegressor;
// Median regression (50th percentile)
let median = builder
.quantile
.solver
.build;
// Multiple quantiles
let quantiles = vec!;
for q in quantiles
Benchmarks
Performance comparisons on standard datasets:
| Model | scikit-learn | sklears-linear | Speedup |
|---|---|---|---|
| Linear Regression | 2.3ms | 0.3ms | 7.7x |
| Ridge (Cholesky) | 1.8ms | 0.2ms | 9.0x |
| Lasso (CD) | 15ms | 1.2ms | 12.5x |
| ElasticNet | 18ms | 1.5ms | 12.0x |
With GPU acceleration (coming soon):
- Expected 50-100x speedup for large problems
- Linear scaling with problem size
Architecture
sklears-linear/
├── models/ # Core linear models
├── solvers/ # Optimization algorithms
├── regularization/ # L1, L2, ElasticNet
├── robust/ # Robust regression methods
├── bayesian/ # Bayesian linear models
├── sparse/ # Sparse matrix support
└── gpu/ # GPU acceleration (WIP)
Status
- Core Models: 100% complete
- Advanced Solvers: 95% complete
- Test Coverage: 124/158 passing (78%)
- GPU Support: In development
Contributing
We welcome contributions! See CONTRIBUTING.md.
License
Licensed under either of:
- Apache License, Version 2.0
- MIT license
Citation