Three estimators that don't fit the classical batch-OLS pattern are available but unexposed.
Scope
| Method |
Rust path |
Status in 0.5.6 |
Description |
| Passive-Aggressive |
anofox_regression::solvers::PassiveAggressiveRegressor |
new in 0.5.6 |
Online streaming regressor (PA-I / PA-II variants) with epsilon-insensitive loss. Same family as RLS but for non-quadratic loss; tunable update aggressiveness. |
| Dynamic LM |
anofox_regression::solvers::lm_dynamic::* |
pre-existing, unexposed |
Time-varying-coefficient linear model with LOWESS weight smoothing. The natural "rolling regression" companion to OLS over time windows. |
| LOWESS |
anofox_regression::solvers::lowess::* |
pre-existing, unexposed |
Locally weighted scatterplot smoothing — nonparametric smoother for visualization or feature engineering. |
Suggested user-facing names
passive_aggressive_fit_agg, passive_aggressive_fit_predict_by — primary surface is the streaming aggregate; emphasize compatibility with OVER (ORDER BY t).
lm_dynamic_fit, lm_dynamic_fit_agg, lm_dynamic_fit_predict_by — likely takes a bandwidth / kernel option.
lowess as a scalar/table macro (no fit/predict split — it returns a smoothed value per input row).
Prerequisite
Bump Cargo.toml: anofox-regression = "0.5.6" for PassiveAggressive. LmDynamic and LOWESS work against the current pin.
Tasks
Three estimators that don't fit the classical batch-OLS pattern are available but unexposed.
Scope
anofox_regression::solvers::PassiveAggressiveRegressoranofox_regression::solvers::lm_dynamic::*anofox_regression::solvers::lowess::*Suggested user-facing names
passive_aggressive_fit_agg,passive_aggressive_fit_predict_by— primary surface is the streaming aggregate; emphasize compatibility withOVER (ORDER BY t).lm_dynamic_fit,lm_dynamic_fit_agg,lm_dynamic_fit_predict_by— likely takes abandwidth/kerneloption.lowessas a scalar/table macro (no fit/predict split — it returns a smoothed value per input row).Prerequisite
Bump
Cargo.toml:anofox-regression = "0.5.6"for PassiveAggressive. LmDynamic and LOWESS work against the current pin.Tasks
lm_dynamic, a streaming-update fixture for PassiveAggressive (verify behavior under repeated*_fit_aggover time-ordered partitions), and a noisy-scatter fixture for LOWESS.