Skip to content

Releases: oegedijk/explainerdashboard

v0.2.20.1: backward compatibility fix

14 Jan 10:25
e1e6254
Compare
Choose a tag to compare

0.2.20.1:

Bug Fixes

  • fixes bug allowing single list of logins for ExplainerDashboard when passed
    on to ExplainerHub
  • fixes bug with explainers generated with explainerdashboard <= 0.2.19
    that did not have a .onehot_cols property

v0.2.20: supporting categorical features

12 Jan 14:18
0bc863c
Compare
Choose a tag to compare

0.2.20:

Breaking Changes

  • WhatIfComponent deprecated. Use WhatIfComposite or connect components
    yourself to a FeatureInputComponent
  • renaming properties:
    explainer.cats -> explainer.onehot_cols
    explainer.cats_dict -> explainer.onehot_dict

New Features

  • Adds support for models with categorical features (e.g. CatBoost)
  • Adds filter on number of categories to display in violin plots and pdp plot,
    and how to sort the categories (alphabetical, by frequency or by mean abs shap)

Bug Fixes

  • fixes bug where str tab indicators returned e.g. the old ImportancesTab instead of ImportancesComposite

Improvements

  • No longer dependening on PDPbox dependency: built own partial dependence
    functions with categorical feature support
  • autodetect xgboost.core.Booster or lightgbm.Booster and give ValueError to
    use the sklearn compatible wrappers instead.

Other Changes

  • Introduces list of categorical columns: explainer.categorical_cols
  • Introduces dictionary with categorical columns categories: explainer.categorical_dict
  • Introduces list of all categorical features: explainer.cat_cols

Bugfix: support custom dashboard components that dont take name or kwargs

09 Jan 19:23
Compare
Choose a tag to compare

Bug fix:

  • custom ExplainerComponent that do not have name or **kwargs parameters in the __init__ are no longer broken.

v0.2.19: ExplainerHub improvements (NavBar!)

07 Jan 11:31
Compare
Choose a tag to compare

0.2.19

Breaking Changes

  • ExplainerHub: parameter user_json is now called users_file (and default to a users.yaml file)
  • Renamed a bunch of ExplainerHub private methods:
    • _validate_user_json -> _validate_users_file
    • _add_user_to_json -> _add_user_to_file
    • _add_user_to_dashboard_json -> _add_user_to_dashboard_file
    • _delete_user_from_json -> _delete_user_from_file
    • _delete_user_from_dashboard_json -> _delete_user_from_dashboard_file

New Features

  • Added NavBar to ExplainerHub
  • Made users.yaml to default file for storing users and hashed passwords
    for ExplainerHub for easier manual editing.
  • Added option min_height to ExplainerHub to set the size of the iFrame
    containing the dashboard.
  • Added option fluid=True to ExplainerHub to stretch bootstrap container
    to width of the browser.
  • added parameter bootstrap to ExplainerHub to override default bootstrap theme.
  • added option dbs_open_by_default=True to ExplainerHub so that no login
    is required for dashboards for which there wasn't a specific lists
    of users declared through db_users. So only dashboards for which users
    have been defined are password protected.
  • Added option no_index to ExplainerHub so that no flask route is created
    for index "/", so that you can add your own custom index. The dashboards
    are still loaded on their respective routes, so you can link to them
    or embed them in iframes, etc.
  • Added a "wizard" perfect prediction to the lift curve.
    • hide with hide_wizard=True default to not show with wizard=False.

Bug Fixes

  • ExplainerHub.from_config() now works with non-cwd paths
  • ExplainerHub.to_yaml("subdirectory/hub.yaml") now correctly stores
    the users.yaml file in the correct subdirectory when specified.

Improvements

  • added a "powered by: explainerdashboard" footer. Hide it with hide_poweredby=True.
  • added option "None" to shap dependence color col. Also removes the point cloud
    from the violin plots for categorical features.
  • added option mode to ExplainerDashboard.run() that can override self.mode.

v0.2.18.2: fix bug with ExplainerHub and logins=None

29 Dec 21:21
Compare
Choose a tag to compare

v0.2.18: ExplainerHub user management + CLI

24 Dec 19:51
Compare
Choose a tag to compare

v0.2.18.1

New Features

  • ExplainerHub now does user managment through Flask-Login and a user.json file
  • Can now set specific access policies for specific explainer with db_users parameter
  • adds an explainerhub cli to start explainerhubs and do user management from the command-line

v0.2.17.3: fixes version bump

23 Dec 10:39
2da34a0
Compare
Choose a tag to compare

v0.2.17.2: sklearn v0.24 RandomForestRegressor bugfix

23 Dec 10:35
459c650
Compare
Choose a tag to compare

v0.2.17: Introducing ExplainerHub

20 Dec 13:12
Compare
Choose a tag to compare

0.2.17:

New Features

  • Introducing ExplainerHub: combine multiple dashboards together behind a single frontend with convenient url paths.
    • code example:
    db1 = ExplainerDashboard(explainer, title="Dashboard One", name='db1')
    db2 = ExplainerDashboard(explainer2, title="Dashboard Two", name='project_alpha', description="New proposed model")
    
    hub = ExplainerHub([db1, db2])
    hub.run()
    
    # store an recover from config:
    hub.to_yaml("hub.yaml")
    hub2 = ExplainerHub.from_config("hub.yaml")
  • adds option dump_explainer to ExplainerDashboard.to_yaml() to automatically
    dump the explainer along with the .yaml.
  • adds option use_waitress to ExplainerDashboard.run() and ExplainerHub.run(), to use the waitress python webserver instead of the Flask development server
  • adds parameters to ExplainerDashboard:
    • name: this will be used to assign a url for ExplainerHub (otherwise defaults to dashboard1, dashboard2, etc
    • description: this will be used for the title tooltip in the dashboard
      and in the ExplainerHub frontend.

Improvements

  • the cli now uses the waitress server by default.

v0.2.16.2: deterministic names when loading from config

18 Dec 07:37
Compare
Choose a tag to compare

Version 0.2.16.2:

Bug fix/Improvement

  • Makes component name property for the default composites deterministic instead
    of random uuid, now also working when loading a dashboard .from_config()
    • note however that for custom ExplainerComponents the user is still responsible
      for making sure that all subcomponents get assigned a deterministic
      name (otherwise random uuid names get assigned at dashboard start,
      which might differ across nodes in e.g. docker swarm deployments)
  • Calling self.register_components() no longer necessary.