You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.