## csinva/imodels — v2.3.0…v3.0.0

_622+ commits._

### Features
- **Support multiclass classification in C4.5 (#93)** (5a8f68f)
- **Add fast-and-frugal trees (#56)** (4ef700b)
- **Add dtreeviz support for tree-based models (#135)** (d77841c)
- **Add a verbose parameter to FIGS (#92)** (eb90b42)
- **Add apply() for leaf membership on tree-based models (#116)** (b8f017d)
- **Support class_weight in FIGSClassifier (#195)** (7eeb1f8)
- **Add a shared get_rules() API across rule-based models (#198, #189, #193, #119)** (6c10ac5)

### Fixes
- **Merge pull request #290 from csinva/fix-predict-feature-names** (0496913)
- **Merge pull request #293 from csinva/fix-sample-weight-and-estimator-mutation** (0cc2868)
- **Merge pull request #292 from csinva/fix-mdlp-discretizer-api** (7ba1440)
- **Merge pull request #288 from csinva/fix-slim-rounding-warning** (b4812eb)
- **Merge pull request #287 from csinva/fix-figs-constant-target** (3c6fa1f)
- **Fix a batch of defects found auditing the library** (7f2c094)
- **Fix two broken demo notebooks, and document what the rest need** (71f0c62)
- **Merge pull request #267 from csinva/fix-77-figs-categorical** (2328118)
- **Fix the tree measurement helpers in util.tree** (6956458)
- **Merge remote-tracking branch 'origin/master' into fix-77-figs-categorical** (c5790e5)
- **Merge pull request #265 from csinva/fix-93-multiclass-errors** (88c424e)
- **Merge remote-tracking branch 'origin/master' into fix-77-figs-categorical** (e44453b)
- **Fix CorrelationScreenTransformer refitting and output type** (8f0c6b5)
- **Fix SLIPPER's boosting probabilities and reproducibility** (10ba67a)
- **Fix accuracy and efficiency issues in hierarchical shrinkage** (3ebd373)
- **Merge pull request #256 from csinva/fix-introspection-api-audit** (ee014bb)
- **Fix introspection API gaps found auditing the recent merges** (c4ac251)
- **Merge pull request #253 from csinva/fix-hstree-shared-default-estimator** (ccea5f3)
- **Merge pull request #252 from csinva/fix-89-ccp-sample-weight** (ad0723b)
- **Merge pull request #251 from csinva/fix-157-figs-sample-weight** (2a1df64)
- **Merge pull request #247 from csinva/fix-213-hstree-nan** (162f103)
- **Merge pull request #246 from csinva/fix-219-gosdt-detection** (c7a9806)
- **Merge pull request #243 from csinva/fix-133-rulefit-tree-generator** (7b877d2)
- **Merge pull request #236 from csinva/fix-212-hstree-ensemble-str** (b5b8347)
- **Merge pull request #237 from csinva/fix-200-rulefit-sample-fract** (e5e8c39)
- **Merge remote-tracking branch 'origin/master' into fix-200-rulefit-sample-fract** (6755723)
- **Merge remote-tracking branch 'origin/master' into fix-212-hstree-ensemble-str** (25c0bd4)
- **Merge pull request #235 from csinva/fix-199-hstree-unsupported** (ef4d01c)
- **Merge pull request #234 from csinva/fix-206-discretizer-transform** (4664870)
- **Merge pull request #231 from csinva/fix-222-rulefit-set-params** (e395371)
- **Merge remote-tracking branch 'origin/master' into fix-206-discretizer-transform** (08d711f)
- **Merge remote-tracking branch 'origin/master' into fix-200-rulefit-sample-fract** (c34ba3e)
- **Merge remote-tracking branch 'origin/master' into fix-212-hstree-ensemble-str** (56fb4fe)
- **Merge remote-tracking branch 'origin/master' into fix-199-hstree-unsupported** (f8ff12b)
- **Merge remote-tracking branch 'origin/master' into fix-222-rulefit-set-params** (eb44394)
- **Merge pull request #233 from csinva/fix-211-extrabasic-discretizer** (04accc1)
- **Fix BasicDiscretizer and RFDiscretizer transform (#206)** (f803d4a)
- **Fix ExtraBasicDiscretizer with current scikit-learn (#211)** (a4386c3)

### Backend
- **Merge pull request #297 from csinva/docs-and-version-3.0.0** (805d929)
- **Merge pull request #296 from csinva/cleanup4** (5eaa502)
- **Bump version to 3.0.0 and rebuild the docs** (0891954)
- **Clean up readme** (d40f96f)
- **Make the hand-written get_params honor deep, and let HSC45TreeClassifierCV clone** (da49bfb)
- **Merge pull request #289 from csinva/audit-sweep** (c93825e)
- **Drop the numpy star-import in brl_util, and finish the lint sweep** (4bdb394)
- **Remove dead helpers and collapse the duplicated introspection methods** (947d064)
- **Merge master into audit-sweep** (b87621d)
- **Merge pull request #291 from csinva/cleanup** (7e5882f)
- **Honor sample_weight in rule scoring, and stop mutating the base estimator** (a9f9ed7)
- **Give the MDLP discretizers a working transformer API** (b363c98)
- **Remove developer scratch and dead code from the library modules** (06d3d6d)
- **Reject reordered feature columns at predict time** (46c9481)
- **Warn when SLIM's integer rounding removes most of the model** (6874a32)
- **Fit a trivial FIGS model when there is nothing to split on** (1113b96)
- **Merge pull request #286 from csinva/audit-notebooks** (7d051eb)
- **Note required packages at the top of each notebook, not in the docs** (996ce7f)
- **Merge pull request #273 from csinva/audit-binary-only-multiclass** (fb3b8bd)
- **Merge remote-tracking branch 'origin/master' into audit-binary-only-multiclass** (815f6d2)
- **Merge pull request #272 from csinva/audit-predict-feature-check** (b76fbce)
- **update readme** (18c96b3)
- **Merge pull request #284 from csinva/remove-colab-demo** (405855e)
- **Remove the Colab demo link from the readme (#197)** (b558e1b)
- **Merge master: converge on check_binary_target, drop duplicated guards** (0374ffe)
- **Merge origin/master into audit-predict-feature-check** (a03ed88)
- **Merge pull request #283 from csinva/audit-mdlp-pandas3** (3168c06)
- **Merge pull request #274 from csinva/audit-c45-feature-names** (48a2470)
- **Merge pull request #277 from csinva/feat-multiclass-c45** (c953391)
- **Merge pull request #275 from csinva/audit-feature-costs-validation** (552ee0f)
- **Merge pull request #278 from csinva/audit-dataset-alias-verbose** (d45c34c)
- **Merge pull request #271 from csinva/perf-94-figs-njobs** (c74b3db)
- **Merge pull request #269 from csinva/feat-135-dtreeviz** (d428c95)
- **Merge pull request #268 from csinva/audit-correlation-screen** (9818fe9)
- **Merge pull request #279 from csinva/audit-threshold-rounding** (655957f)
- **Merge pull request #280 from csinva/audit-explain-errors-shared-default** (02c0e39)
- **Merge pull request #276 from csinva/feat-56-fast-frugal-trees** (442b8a8)
- **Stop MDLPDiscretizer from using a removed pandas internal** (3a348a7)
- **Merge pull request #281 from csinva/audit-printed-feature-names** (cbaf7a9)
- **Merge pull request #282 from csinva/audit-skope-score-early-return** (a5e7a97)
- **Let SkopeRules learn rules on data with few features** (733deeb)
- **Print the caller's feature names in CART and Bayesian rule lists** (973febb)
- **Give each explain_classification_errors call its own classifier** (43aeb5b)
- **Round rule thresholds to significant digits, not decimal places** (d09f041)
- **Resolve dataset shorthand names regardless of verbose** (b1bd993)
- **Keep C4.5 feature names distinct, and report the caller's names** (a6aa7f3)
- **Reject multiclass targets in classifiers that only implement two classes** (4bd11dc)
- **Merge remote-tracking branch 'origin/master' into feat-135-dtreeviz** (6e5f790)
- **Reject the wrong number of features at predict time** (c53d063)
- **Evaluate FIGS candidate splits in parallel with n_jobs (#94)** (e4654e0)
- **Test that dtreeviz rendering actually produces an SVG** (c4c0a0b)
- **Merge pull request #266 from csinva/audit-brl-predict-threshold** (5aad92f)
- **Merge pull request #270 from csinva/audit-discretizer-nbins** (d75d75b)
- **Stop discretizers from overwriting their n_bins parameter** (c6c1534)
- **Remember FIGS categorical features for predict (#77)** (e053bcd)
- **Merge pull request #264 from csinva/audit-marginal-single-feature** (4b94921)
- **Merge pull request #263 from csinva/docs-202-shap-hstree** (56a9a2e)
- **Make BayesianRuleList.predict agree with predict_proba** (2efbc90)
- **Merge pull request #262 from csinva/audit-figs-single-feature** (9ed3d0e)
- **Reject multiclass targets in binary-only classifiers (#93)** (c84cd7f)
- **Fit the marginal shrinkage model on a single feature** (4878e00)
- **Document how to get SHAP values for shrunk trees (#202)** (ecfd963)
- **Fit FIGS on data with a single feature (#4 in audit series)** (cbe58af)
- **Merge pull request #261 from csinva/feat-227-rulefit-xgboost** (c529f6e)
- **Merge pull request #260 from csinva/audit-slipper-reproducibility** (afb0d17)
- **Let RuleFit extract rules from XGBoost models (#227)** (85c98d1)
- **Merge pull request #259 from csinva/audit-shrinkage-accuracy-perf** (d9e5872)
- **Merge pull request #257 from csinva/feat-127-feature-importances** (5d78b2b)
- **Merge pull request #258 from csinva/feat-92-figs-verbose** (38b637c)
- **Merge remote-tracking branch 'origin/master' into feat-127-feature-importances** (e4b6dd9)
- **Expose MDI feature importances on more tree-based models (#127)** (386b99c)
- **Merge pull request #255 from csinva/remove-gosdt-corels-irf** (55ad650)
- **Merge pull request #254 from csinva/perf-175-hstree-cv-refits-v2** (909fc4f)
- **Remove the gosdt, corels and irf models** (623c36b)
- **Stop refitting the tree for every reg_param in HSTree CV (#175)** (b4a6f8e)
- **Stop HSTree models from sharing one default estimator** (a0319dc)
- **Use sample_weight in cost-complexity-pruned trees (#89)** (4540d39)
- **Account for sample_weight in FIGS node statistics (#157)** (04170f2)
- **Merge pull request #250 from csinva/feat-116-apply** (2cce1a1)
- **Merge remote-tracking branch 'origin/master' into feat-116-apply** (4aef6f6)
- **Merge pull request #249 from csinva/feat-195-figs-class-weight** (16244da)
- **Merge pull request #248 from csinva/feat-get-rules-api** (6edae61)
- **Let hierarchical shrinkage pass missing values to its estimator (#213)** (f3fd99c)
- **Detect an incompatible gosdt install instead of failing in fit (#219)** (73d1790)
- **Merge pull request #244 from csinva/dependabot/uv/nbconvert-7.17.1** (08f88bd)
- **Bump nbconvert from 4.3.0 to 7.17.1** (f4a1c5e)
- **Don't modify a tree_generator passed to RuleFit (#133)** (ef6f2c5)
- **Merge pull request #242 from csinva/dependabot/uv/soupsieve-2.8.4** (f301656)
- **Merge pull request #240 from csinva/dependabot/uv/tornado-6.5.7** (fbe8fb1)
- **Merge pull request #239 from csinva/dependabot/uv/bleach-6.4.0** (a941c66)
- **Bump soupsieve from 2.7 to 2.8.4** (afcb1f5)
- **Bump tornado from 6.5.2 to 6.5.7** (acbc139)
- **Bump bleach from 6.2.0 to 6.4.0** (03161ca)
- **Merge pull request #238 from csinva/dependabot/uv/mistune-3.3.0** (28cbd3f)
- **Merge pull request #232 from csinva/dependabot/uv/jupyterlab-4.5.10** (9f3ae64)
- **Bump jupyterlab from 4.4.6 to 4.5.10** (cbba46f)
- **Bump mistune from 3.1.3 to 3.3.0** (7f68244)
- **Use the sample_fract parameter in RuleFit (#200)** (858e0c6)
- **Merge pull request #230 from csinva/dependabot/uv/pillow-12.3.0** (ddd6972)
- **Print a summary for shrunk tree ensembles instead of raising (#212)** (6d2d4a1)
- **Raise on estimators hierarchical shrinkage cannot shrink (#199)** (fffe858)
- **Apply lin_trim_quantile set via set_params (#222)** (04be3ee)
- **Bump pillow from 11.3.0 to 12.3.0** (acd2077)
- **Merge pull request #229 from csinva/worktree-expand-tests** (d2a0a1d)
- **Test against the latest dependency versions in CI** (e0c9425)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/csinva/imodels?utm_source=github-action)._