Skip to content

Release notes

ml4 follows semantic versioning. The installed version is always available as parleml_ml4.__version__.

0.8.0

The first release of ml4, the training engine inside ParleML. It turns a table into a deployable model on AutoGluon 1.6.3, and adds feature engineering, a regulated model roster and honest post-fit checks around it.

Supervised learning

  • One front door. parleml_ml4.AutoSupervised(cfg).fit(df) returns a FittedPipeline with scikit-learn style predict and predict_proba. It handles binary, multiclass and regression targets. See Supervised and the Quickstart.
  • Presets. Sixteen built-in presets in parleml_ml4.config.presets.PRESETS, from default and quick_explore to high_accuracy, the tuned ensembles, real_time, large_dataset, small_data, text_heavy, foundation_ensemble and three regulated presets. See Configuration & presets.
  • Model roster. LightGBM, CatBoost and XGBoost variants (GBM:gbdt, GBM:dart, GBM:extra, CAT:symmetric, XGB:gbtree and more), random forest, extra trees, linear and neural models. See Algorithms & metrics.
  • Glass-box models. GLM, scorecard, RuleFit and EBM for regulated work, with monotonic constraints derived from the data or set by hand. See Monotonic constraints & regulated models.
  • Tabular foundation model. TabICL as a challenger, and a zero-shot signal check that tells you whether the data carries signal before you train. See Tabular foundation models and Signal check.
  • Validation. Random, grouped and time-ordered splits. See Data splitting & validation.
  • Hyperparameter search. A seeded Optuna search per roster model, handed to AutoGluon for bagging and ensembling. See Hyperparameter search and Choosing an HPO strategy.
  • Imbalanced data and outliers. Oversampling, undersampling, sample weights and outlier handling. See Imbalanced data & outliers.

Feature engineering

  • A planned recipe. Every transform is typed by its leakage risk and fitted either once on the training frame or inside each fold. See Feature engineering.
  • Stateful encoders (target encoders from the category_encoders family, cross-fitted inside each training slice), stateless domain encoders, and temporal encoders (lags and rolling windows). See Stateful encoders, Stateless domain encoders and Temporal encoders.
  • Text embeddings from a local model (default BAAI/bge-small-en-v1.5) or a provider. The model records which embedding source it was trained on, and scoring checks it. See Text & embeddings.
  • Geography and reference data joins. See Geography & reference data.
  • AutoGluon's Prep options GBM:extra and GBM:arith. See AutoGluon's Prep options.

The decision layer

  • Calibration, threshold and baseline check as one unit, fitted on the model's own out-of-sample predictions. Calibration (auto, isotonic, platt or temperature) ships only when it beats the raw probabilities. See The decision layer.
  • Re-decide without retraining. parleml_ml4.refit_decision_layer changes the calibration or threshold of a saved model in seconds. See the decision-layer reference.
  • Prediction intervals for regression: conformalized quantile regression (CQR) or split conformal. See Prediction intervals.

Forecasting

  • Four backends, chosen with backend:
    • stats: StatsForecast models (AutoARIMA, AutoETS, AutoTheta, MSTL, TBATS, and the Croston family for intermittent demand).
    • tree: gradient-boosted models on lag features, forecast recursively.
    • foundation: zero-shot Chronos-2 and Chronos-Bolt models.
    • autogluon: AutoGluon-TimeSeries.
  • A real time grid, backtests with conformal intervals, hierarchical reconciliation (bottom-up) and MASE against a seasonal-naive baseline. See Forecasting and the Forecaster reference.
  • Non-negative forecasts. non_negative (default "auto") floors every point and band at zero when the training target is never negative. The cross-validation predictions are floored before scoring, so metrics and coverage match what is published.

Unsupervised learning

  • Anomaly detection with AnomalyDetector over PyOD detectors (ECOD, Isolation Forest, LOF, autoencoders and more).
  • Missing numbers are filled from each row's nearest neighbours, so a gap does not make a row look anomalous; a __missing flag is opt-in (missing_indicators=True).
  • Clustering with ClusteringDetector over seven scikit-learn algorithms (HDBSCAN by default), with automatic choice of the cluster count and cluster profiles. See Unsupervised.

Recommendation, ranking and association

  • Recommendation. Recommender scores next-best products per entity and reports Hit@K, MRR@K and NDCG@K. See Recommendation.
  • Learning to rank. LTRRanker with LightGBM or CatBoost rankers and ltr_fast, ltr_balanced and ltr_thorough presets. See Learning-to-Rank and Ranking metrics & objectives.
  • Association rules. AssociationMiner mines frequent itemsets and statistically tested rules from long, event or basket data, and scores each rule on held-out baskets. See Association rules.

Deployment and operations

Saved artifacts

Every saved artifact carries a format stamp and the ml4 version that wrote it: supervised bundles, forecasting, recommendation, learning-to-rank and unsupervised pipelines, association results and decision bases. ml4 checks the stamp before it unpickles anything. An artifact written by a pre-release build, or by any other format, is refused with a StaleArtifactError that says to re-train or re-export it with this version.

Load only artifacts you trust

Artifacts are saved with pickle and joblib. Loading one runs code, so load only models you produced yourself.

Next: Installation · Quickstart