Releases: MuditNautiyal-21/mudra-ml
Release list
mudra-ml 0.6.0.post1
This is a documentation post-release of 0.6.0. The package is identical to 0.6.0, with no code change.
The "What to expect on imbalanced data" section of the README now reports a minority-class F1 column next to recall and precision, on the same three public datasets, so the recall gain and the precision cost can be read against the balance of the two. A new explanation states plainly why recall rises and precision falls under imbalanced handling, and how the F1 reading shows the trade came out ahead on all three datasets.
The numbers are unchanged from 0.6.0. The full change history is at https://github.com/MuditNautiyal-21/mudra-ml/blob/main/CHANGELOG.md
mudra-ml 0.6.0
mudra-ml 0.6.0 handles imbalanced classification honestly.
On a skewed target a weighted headline score can stay high while the model misses most of the minority class. This release states that miss in plain words and reduces it, with the precision cost shown.
- The trust summary states the minority-class recall and miss rate in plain words. When the miss is large it becomes the headline risk and the verdict no longer reads as sound.
- Model selection is aligned to the minority class: minority-class F1 for binary targets, macro F1 for multiclass.
- Balanced class weights are applied to the estimators that support them. The estimators without a class-weight option lean on the tuned threshold instead, and the report records which got weights.
- For a binary target the decision threshold is tuned on out-of-fold predictions of the training data only, never the held-out test set. The report shows the held-out precision, recall, and F1 at the tuned threshold next to the default 0.5 cutoff. The threshold is saved with the model and reapplied on load.
Multiclass targets get the class weights, the flag, and macro-F1 selection, but not threshold tuning.
Measured with the optional boosters disabled and the seed fixed at 42, the held-out minority-class recall moved from 0.54 to 0.76 on adult, 0.39 to 0.74 on bank-marketing, and 0.45 to 0.68 on credit-g, at a precision cost shown in the report. The balanced and regression datasets are unchanged.
Full change history: https://github.com/MuditNautiyal-21/mudra-ml/blob/main/CHANGELOG.md
mudra-ml 0.5.2
This is a documentation release. No code changed.
The README was rewritten to describe the current capabilities and the trust
model. It now states what the tool is in one sentence, what makes it different,
how to install the base package and the optional boosting and file extras, a
quickstart verified against the current API, what the report contains in
pipeline order, how a saved model reloads and predicts, the real
classification, regression, and clustering rosters, and the honest scope and
limits.
The license and changelog links were also made absolute so they render
correctly on the package page.
mudra-ml 0.5.1
This release publishes the 0.5 line. The package on PyPI moves from 0.4.1 to
0.5.1. The 0.5.0 work was an internal step and is superseded by 0.5.1.
Compute budget cost model (0.5.1)
The cost model overestimated the model search and trimmed it too hard. It
scaled the cost of one fit linearly with the feature count, so wide one-hot
data such as adult read as far more expensive than it is, and the catboost
overhead dominated the plan and ranked the fast boosters as the most expensive
candidates. The model is now calibrated against measured fit times. The feature
term is sublinear, the per-family costs and overheads are fitted to the
measurements, and one million planning units maps to one second of reference
work. A small safety margin biases the planner toward slight under-trimming.
The planner stays deterministic and reads no wall clock. At the default budget
adult now keeps the tuned shortlist and selects a tuned lightgbm close to the
0.4.1 baseline, and nested cross-validation engages within the default budget
on the small and medium datasets.
Data-driven pipeline numbers, compute budget, and trust summary (0.5.0)
Every value that drives a decision is now derived from the training data by a
named rule, planned by an explicit compute budget, or kept as a justified
default with the reason stated in code and in the report. The model search runs
under an explicit compute budget enforced by a deterministic cost estimate
rather than the wall clock, and every budget trim is logged and reported. The
report opens with a plain-language trust summary and a validation guard
section.
Validation guard fix (0.5.0)
The validation guard now scores the held-out set with the same scorer the
search selected on, so the optimism flag fires only on a real cross-validation
to held-out gap.
v0.4.1
This release reorders the run report so it reads as the pipeline ran, fixes a crash in the XGBoost candidate on string class labels, and adds an on-demand production test suite that was run in full against real datasets, the real boosters, and 100000-row data.
Changed
- The report now reads in the order the pipeline actually runs: run summary, data profile, data quality, preprocessing, split, model shortlist, tuning and selection, evaluation, limitations and next steps, and the full decision log last. The data profile gains a per-column table (type, missingness, cardinality, and distribution statistics for numeric columns) shown up front instead of after the model results. No content was removed. In the HTML report each chart stays with its section: the target distribution and feature correlation sit with the profile, and the confusion matrix, ROC, precision-recall, residual, and predicted-versus-actual charts sit in evaluation. Tests assert the section order for a classification run and a regression run.
Fixed
- The XGBoost classification candidate crashed any run whose target held string labels (for example
good/bador<=50K/>50K), because XGBoost only accepts consecutive integer classes. The candidate is now wrapped in an adapter that encodes the labels during fit and returns the original labels from predict, with probability columns following sorted label order. LightGBM and CatBoost already handled string labels. The offline suite covers all three boosters when they are installed.
Added
- An on-demand production test suite under
production_tests/, separate from the offline unit suite: real public datasets (OpenML and scikit-learn) end to end with save, load, and predict round-trips, real booster training and selection, and scale runs at 1000, 10000, and 100000 rows with recorded run times and memory readings. It needs the network and is not part of normal CI. The full pass ran green: all eight datasets, all three boosters, and all three scale sizes.
0.3.1
Documentation
- The README now describes the 0.3.0 robustness improvements: messy-numeric
coercion with preserved categories, boolean-column handling, binary
classification metrics for any pair of labels with the recorded positive
class, class-imbalance safety through a stratified split and capped
cross-validation folds, and clearMudraErrorfailures that name the
offending column. There are no code changes in 0.3.1.