Skip to content

Release: 0.4.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 17:29
  • regression_table takes "sets" of features (such as the dummy variables
    of one category, as "family, partner, stranger; under_12, teen" in
    settings), whose members' average marginal effects are each the change
    from the set's reference (every member 0) to that member alone, rather
    than from moving each dummy on its own, which made rows that cannot
    happen.
  • Added techniques that wrap mlxtend, which the new mlxtend extra (and
    all) installs: sequential_selection and exhaustive_selection,
    reducers that search for the set of features with which a model (a
    logistic or linear regression, or "estimator") scores best in
    cross-validation, folding by the dataset's first group as a model's search
    does, and store the score of each set as "{name}_search";
    association_rules, a describer of which values (of the categorical and
    boolean columns, and of a classified label) tend to appear in the same
    rows; bias_variance, an evaluator that splits the model's expected loss
    on the test rows into its bias and variance; and decision_regions, a plot
    of the class that a classifier predicts across two features.
  • Added dtreeviz's plots of decision trees, which the explain extra now
    installs: tree_leaf_sizes, tree_leaf_distributions, tree_leaf_purity,
    tree_feature_space, and tree_prediction_path. They draw a
    decision_tree or one tree of a random_forest, extra_trees, or
    adaboost model (and tree_leaf_sizes and tree_leaf_distributions one
    tree of an xgboost or lightgbm model), in the style of the other
    figures. dtreeviz's drawing of a whole tree is not wrapped, since it needs
    Graphviz and makes only SVG files; tree_plot draws one.
  • models.search_folds returns the folds of a hyperparameter search (which
    Model._folds now calls), so that other techniques can fold by groups as
    a search does.
  • Plots that draw with matplotlib.pyplot (shap's, and now mlxtend's and
    dtreeviz's) are lent their figure by plots._lent, which also keeps
    pyplot.show from opening a window while they draw.
  • A model's hyperparameter search ("grid", "random", or "optuna") keeps the
    rows of each group of the dataset's first group column in one fold, as the
    group validators do, when the dataset has groups: with
    StratifiedGroupKFold for a classifier and GroupKFold for a regression.
    Before, its folds divided the rows at random, so rows of one group (such as
    the votes of the judges of one case) could be on both sides of a fold and
    the search scored a model on rows it had partly seen. A row with a missing
    group is a group of its own.
  • Brought in the CI fixes of snickerdoodle 0.4.3: GitHub releases are made
    with the GitHub CLI (in place of the deprecated gh-action-auto-release
    Action), with the released version's section of CHANGELOG.md as their
    notes, only from main and after the tests and linters pass. The test
    matrix now runs every Python version it names, instead of recreating the
    environment with Python 3.11 at uv run.