Explainerdashboard Versions Save

Quickly build Explainable AI dashboards that show the inner workings of so-called "blackbox" machine learning models.

v0.4.1

1 year ago

Version 0.4.1

New Features

  • added routes_pathname_prefix:str=None, requests_pathname_prefix:str=None, to ExplainerDashboard to help running the dashboard on e.g. Sagemaker

Bug Fixes

  • Bug with plotly showticklabels=False changed to tickfont=dict(color="rgba(0, 0, 0, 0)")
  • Imports now comply with dtreeviz v2 API

v0.4.0

1 year ago

Version 0.4.0: upgrade bootstrap5, drop python 3.6 and 3.7 support and improved pipeline support

  • Upgrades the dashboard to bootstrap5 and dash-bootstrap-components v1 (which is also based on bootstrap5), this may break older custom dashboards that included bootstrap5 components from dash-bootstrap-components<1
  • Support terminated for python 3.6 and 3.7 as the latest version of scikit-learn (1.1) dropped support as well and explainerdashboard depends on the improved pipeline feature naming in scikit-learn>=1.1

New Features

  • Better support for large datasets through dynamic server-side index dropdown option selection. This means that not all indexes have to be stored client side in the browser, but get rather automatically updated as you start typing. This should help especially with large datasets with large number of indexes. This new server-side dynamic index dropdowns get activated if the number of rows > max_idxs_in_dropdown (defaults to 1000).
  • Both sklearn and imblearn Pipelines are now supported with automated feature names generated, as long as all the transformers have a .get_feature_names_out() method
  • Adds shap_kwargs parameter to the explainers that allow you to pass additional kwargs to the shap values generating call, e.g. shap_kwargs=dict(check_addivity=False)
  • Can now specify absolute path with explainerfile_absolute_path when dumping dashboard.yaml with db.to_yaml(...)

Bug Fixes

  • Suppresses warnings when extracting final model from pipeline that was not fitted on a dataframe.

Improvements

  • No longer limiting werkzeug version due to upstream bug fixes of dash and jupyter-dash

Other Changes

  • Some dropdowns now better aligned.

v0.3.8.2

2 years ago

v0.3.8.1

2 years ago

New Features

  • Adds support for sklearn Pipelines that add new features (such as those including OneHotEncoder) as long as they support the new get_features_out() method. Not all estimators and transformers have this method implemented yet, but if all estimators in your pipeline do, then explainerdashboard will extract the final dataframe and the model from your pipelines. For now this does result in a lot of "this model was fitted on a numpy array but you provided a dataframe" warnings.

Bug Fixes

  • Fixes a bug with sorting pdp features
  • Pins werkzeug<=2.0.3 due to some new features that broke JupyterDash
  • Changes use of pd.append that will be deprecated soon and is currently generated warnings.

v0.3.8

2 years ago

v0.3.7

2 years ago

Version 0.3.7

Breaking Changes

  • downgrades dash-bootstrap-components to <1 due to a long list of breaking changes in dbc v1

New Features

  • Export your ExplainerHub to static html with hub.to_html() and hub.save_html() methods
  • Export your ExplainerHub to a zip file with static html exports with to_zip() method
  • Manually add pre-calculated shap values with explainer.set_shap_values()
  • Manually add pre-calculated shap interaction values with explainer.set_shap_interaction_values()

Bug Fixes

  • Fixed bug with What if tab components static html export (missing </div>)

v0.3.6.2

2 years ago

Bumps dash requirement to 1.20 which introduced the new dcc.Download component used to download the static html from the dashboard.

v0.3.6.1

2 years ago

Version 0.3.6:

New Features

  • Static html export! You can export a static version of the dashboard using the default values that you specified in the components or through kwargs with dashboard.to_html().
    • for custom components you need to define your own custom to_html() methods, see the documentation.
  • A toggle is added to the dashboard header that allows you to download a static export of the current live state of the dashboard.
  • adds a new toggle and parameter to the ConfusionmatrixComponent to either average the percentage over the entire matrix, over the rows or over the columns. Set normalize='all', normalize='true', or normalize='pred'.
  • also adds a save_html(filename) method to all ExplainerComponents and ExplainerDashboard
  • ExplainerHub adds a new parameter index_to_base_route: Dispatches Hub to /base_route/index instead of the default / and /index. Useful when the host root is not reserved for the ExplainerHub

v0.3.6

2 years ago

Version 0.3.6:

New Features

  • Static html export! You can export a static version of the dashboard using the default values that you specified in the components or through kwargs with dashboard.to_html().
    • for custom components you need to define your own custom to_html() methods, see the documentation.
  • A toggle is added to the dashboard header that allows you to download a static export of the current live state of the dashboard.
  • adds a new toggle and parameter to the ConfusionmatrixComponent to either average the percentage over the entire matrix, over the rows or over the columns. Set normalize='all', normalize='true', or normalize='pred'.
  • also adds a save_html(filename) method to all ExplainerComponents and ExplainerDashboard
  • ExplainerHub adds a new parameter index_to_base_route: Dispatches Hub to /base_route/index instead of the default / and /index. Useful when the host root is not reserved for the ExplainerHub

v0.3.5

3 years ago

New Features

  • adds support for PyTorch Neural Networks! (as long as they are wrapped by skorch)
  • adds SimplifiedClassifierComposite and SimplifiedRegressionComposite to explainerdashboard.custom
  • adds flag simple=True to load these simplified one page dashboards: ExplainerDashboard(explainer, simple=True)
  • adds support for visualizing trees of ExtraTreesClassifier and ExtraTreesRegressor
  • adds FeatureDescriptionsComponent to explainerdashboard.custom and the Importances tab
  • adds possibility to dynamically add new dashboards to running ExplainerHub using /add_dashboard route with add_dashboard_route=True (will only work if you're running the Hub as a single worker/node though!)

Improvements

  • ExplainerDashboard.to_yaml("dashboards/dashboard.yaml", dump_explainer=True) will now dump the explainer in the correct subdirectory (and also default to explainer.joblib)
  • Interactions tab automatically excluded for linear models