Releases: oegedijk/explainerdashboard
Releases · oegedijk/explainerdashboard
v0.2.16.1: deterministic component names
Bug fix/Improvement
- Makes component
name
property for the default composites deterministic instead of random uuid.
This should help remedy bugs with deployment using e.g. docker swarm.- When you pass a list of
ExplainerComponents
to ExplainerDashboard the tabs will get names'1'
,'2'
,'3'
, etc. - If you then make sure that subcomponents get passed a name like
name=self.name+"1"
, then subcomponents will have deterministic names as well. - this has been implemented for the default
Composites
that make up the defaultexplainerdashboard
- When you pass a list of
v0.2.16: whatif improvements
Version 0.2.16:
Breaking Changes
hide_whatifcontribution
parameter now calledhide_whatifcontributiongraph
New Features
- added parameter
n_input_cols
to FeatureInputComponent to select in how many columns to split the inputs - Made PredictionSummaryComponent and ShapContributionTableComponent also work
with InputFeatureComponent - added a
PredictionSummaryComponent
andShapContributionTableComponent
to the "what if" tab- hide with
hide_whatifprediction=True
andhide_whatifcontributiontable=True
- hide with
Improvements
- features of
FeatureInputComponent
are now ordered by mean shap importance - Added range indicator for numerical features in FeatureInputComponent
- hide them
hide_range=True
- hide them
- changed a number of dropdowns from
dcc.Dropdown
todbc.Select
- reordered the regression random index selector
component a bit
v0.2.15: hide individual components
Version 0.2.15:
New Features
-
can now hide entire components on tabs/composites:
ExplainerDashboard(explainer, # importances tab: hide_importances=True, # classification stats tab: hide_globalcutoff=True, hide_modelsummary=True, hide_confusionmatrix=True, hide_precision=True, hide_classification=True, hide_rocauc=True, hide_prauc=True, hide_liftcurve=True, hide_cumprecision=True, # regression stats tab: # hide_modelsummary=True, hide_predsvsactual=True, hide_residuals=True, hide_regvscol=True, # individual predictions: hide_predindexselector=True, hide_predictionsummary=True, hide_contributiongraph=True, hide_pdp=True, hide_contributiontable=True, # whatif: hide_whatifindexselector=True, hide_inputeditor=True, hide_whatifcontribution=True, hide_whatifpdp=True, # shap dependence: hide_shapsummary=True, hide_shapdependence=True, # shap interactions: hide_interactionsummary=True, hide_interactiondependence=True, # decisiontrees: hide_treeindexselector=True, hide_treesgraph=True, hide_treepathtable=True, hide_treepathgraph=True, ).run()
Bug Fixes
- Fixed bug where if you passed a default index as
**kwargs
, the random index selector
would still fire at startup, overriding the passed index - Fixed bug where in case of ties in shap values the contributions graph/table would show
more than depth/topx feature - Fixed bug where favicon was not showing when using custom bootstrap theme
- Fixed bug where logodds where multiplied by 100 in
ShapContributionTableComponent
Improvements
- added checks on
logins
parameter to give more helpful error messages- also now accepts a single pair of logins:
logins=['user1', 'password1']
- also now accepts a single pair of logins:
- added a
hide_footer
parameter to components with a CardFooter
v0.2.14:
Version 0.2.14:
New Features
- added
bootstrap
parameter to dashboard to make theming easier:
e.g.ExplainerDashboard(explainer, bootstrap=dbc.themes.FLATLY).run()
- added
hide_subtitle
parameter to all components with subtitles - added
description
parameter to all components to adjust the hover-over-title
tooltip - can pass additional
**kwargs
to ExplainerDashboard.from_config() to override
stored parameters, e.g.db = ExplainerDashboard.from_config("dashboard.yaml", higher_is_better=False)
Bug Fixes
- fixed bug where
drop_na=True
forexplainer.plot_pdp()
was not working.
Improvements
**kwargs
are now also stored when callingExplainerDashboard.to_yaml()
- turned single radioitems into switches
RegressionVsColComponent
: hide "show point cloud next to violin" switch
when col is not incats
v0.2.13.2: RegressionRandomIndexComponent bug fix
Version 0.2.13.2
Bug Fixes
- fixed RegressionRandomIndexComponent bug that crashed when y.astype(np.int64),
now casting all slider ranges to float.
v0.2.13.1: bug fixes
Version 0.2.13.1
Bug Fixes
- fixed pdp bug introduced with setting
X.index
toself.idxs
where
the highlighted index was not the right index - now hiding entire
CardHeader
whenhide_title=True
- index was not initialized in ShapContributionsGraphComponent and Shap ContributionsTableComponent
v0.2.13: visual upgrade
Version 0.2.13:
Breaking Changes
- Now always have to pass a specific port when terminating a JupyterDash-based
(i.e. inline, external or jupyterlab) dashboard:ExplainerDashboard.terminate(port=8050)
- but now also works as a classmethod, so don't have to instantiate an
actual dashboard just to terminate one!
- but now also works as a classmethod, so don't have to instantiate an
- ExplainerComponent
_register_components
has been renamed tocomponent_callbacks
to avoid the confusing underscore
New Features
- new:
ClassifierPredictionSummaryComponent
,RegressionPredictionSummaryComponent
- already integrated into the individual predictions tab
- also added a piechart with predictions
- Wrapped all the ExplainerComponents in
dbc.Card
for a cleaner look to the dashboard. - added subtitles to all components
Improvements
- using
go.Scattergl
instead ofgo.Scatter
for some plots which should improve
performance with larger datasets ExplainerDashboard.terminate()
is now a classmethod, so don't have to build
an ExplainerDashboard instance in order to terminate a running JupyterDash
dashboard.- added
no_permutations
boolean argument toImportancesComponent
(that
you can also pass toExplainerDashboard
**kwargs
)
Other Changes
- Added warning that kwargs get passed down the ExplainerComponents
- Added exception when trying to use
ClassifierRandomIndexComponent
with a
RegressionExplainer
orRegressionRandomIndexComponent
with aClassifierExplainer
- dashboard now uses Composites directly instead of the ExplainerTabs
v0.2.12.1: fix RangeIndex bug
v0.2.12.1
Bug Fix:
- When
X
had aRangeIndex
, theplot against feature
component would not work. This is now fixed (by casting it to a str index)
Improvement
- hiding orientation dropdown on ShapContributionsGraphComponent by default. (undo by passing
hide_orientation=False
.)
v0.2.12: add tooltips to all the things
Version 0.2.12:
Breaking Changes
- removed
metrics_markdown()
method. Addedmetrics_descriptions()
that
describes the metric in words. - removed
PredsVsColComponent
,ResidualsVsColComponent
andActualVsColComponent
,
these three are now subsumed inRegressionVsColComponent
.
New Features
- Added tooltips everywhere throughout the dashboard to explainer
components, plots, dropdowns and toggles of the dashboard itself.
Improvements
- changed colors on contributions graph and xgboost trees graph: up=green, down=red
- added
higher_is_better
parameter. Set to False to switch green and red colors.
- added
- Clarified wording on index selector components
- hiding
group cats
toggle everywhere when no cats are passed - passing
**kwargs
of ExplainerDashbaord down to all all tabs and (sub) components
so that you can configure components from an ExplainerDashboard param.
e.g.ExplainerDashboard(explainer, higher_is_better=False).run()
will
pass the higher_is_better param down to all components. In the case of the
ShapContributionsGraphComponent and the XGBoostDecisionTrees component
this will cause the red and green colors to flip (normally green is up
and red is down.)
v0.2.11:
Version 0.2.11:
New Features
- added (very limited) sklearn.Pipeline support. You can pass a Pipeline as
model
parameter as long as the pipeline either:- Does not add, remove or reorders any input columns
- has a .get_feature_names() method that returns the new column names
(this is currently beings debated in sklearn SLEP007)
- added cutoff slider to CumulativePrecisionComponent
- For RegressionExplainer added ActualVsColComponent and PredsVsColComponent
in order to investigate partial correlations between y/preds and
various features. - added
index_name
parameter: name of the index column (defaults toX.index.name
oridxs.name
). So when you passindex_name="Passenger"
, you get
a "Random Passenger" button on the index selector instead of "Random Index",
etc.
Bug Fixes
- Fixed a number of bugs for when no labels are passed (
y=None
):- fixing explainer.random_index() for when y is missing
- Hiding label/y/residuals selector in RandomIndexSelectors
- Hiding y/residuals in prediction summary
- Hiding model_summary tab
- Removing permutation importances from dashboard
Improvements
- Seperated labels for "observed" and "average prediction" better in tree plot
- Renamed "actual" to "observed" in prediction summary
- added unique column check for whatif-component with clearer error message
- model metrics now formatted in a nice table
- removed most of the loading spinners as most graphs are not long loads anyway.