Skip to content

FeatRanker v0.4.0

Choose a tag to compare

@CountZero-Error CountZero-Error released this 12 Oct 12:47
· 71 commits to main since this release

Added

  • Dummy baseline (DummyClassifier/DummyRegressor): only models that strictly beat it vote in the consensus. Reports gain baseline_score and per-model in_consensus; an empty consensus warns.
  • FeatureRanker(models={...}) to rank with your own estimators or Pipelines (cloned at fit()).
  • n_jobs / --n-jobs to fit and rank models in parallel with results identical to sequential runs.
  • Report provenance (featranker, Python, NumPy, scikit-learn versions) and per-model JSON-safe params.
  • End-to-end tests of the shipped model registry; CI matrix over Python 3.10–3.13 and scikit-learn 1.5.x/latest.

Changed

  • Built-in linear models standardize features internally (StandardScaler fit on training data only).
  • Permutation reuses one scratch matrix per model (same results, less copying).
  • CLI moved to featranker/cli.py (console script featranker.cli:main); CSV flags are argparse-required and no arguments prints help.
  • Every classification target is label-encoded to 0..n-1; regression targets must be numeric.
  • CSV targets are typed by --task, so train/eval label sets stay comparable.

Fixed

  • Longer unseen eval labels were silently truncated to the training label width and accepted.
  • Mixed numeric/text targets across train and eval CSVs produced all-zero scores without error.
  • L1/elastic-net logistic models silently ran as L2 on scikit-learn < 1.8.
  • XGBoost failed on classification labels not starting at 0.
  • pls_da (PLSRegression) removed: it is not a classifier.
  • A failed refit left the ranker marked fitted.
  • NaN/inf features are rejected; CSV BOMs and blank lines are handled; invalid scorer, n_repeats, or feature groups fail before any model is fit.
  • Build requires setuptools>=77 for the SPDX license field.

Removed

  • Legacy preparation workflow: build_ranker(), run_ML(), rankFeatures(), prep_file/prep_class, --prep-file/--prep-class, in-sample evaluation_mode, and featranker.importance.main.

Known issues

  • CatBoost 1.2.8 lacks __sklearn_tags__; scikit-learn 1.8 may turn the current deprecation warning into per-model failures.

Full Changelog: v0.3.0...v0.4.0