From 2e9807f8f17a2124ac72780cd5a3061f1619bff8 Mon Sep 17 00:00:00 2001 From: es-dell <168178251+es-dell@users.noreply.github.com> Date: Fri, 16 Aug 2024 00:59:09 +0800 Subject: [PATCH 1/4] Create untitled --- .../algorithms/local_shap_toolbox/images/untitled | 1 + 1 file changed, 1 insertion(+) create mode 100644 stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled @@ -0,0 +1 @@ + From 5a96a601c55090617694bbc66cda46b244633029 Mon Sep 17 00:00:00 2001 From: es-dell <168178251+es-dell@users.noreply.github.com> Date: Fri, 16 Aug 2024 00:59:37 +0800 Subject: [PATCH 2/4] Add files via upload local_shap_sample image for README.md --- .../images/local_shap_sample.png | Bin 0 -> 43530 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/local_shap_sample.png diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/local_shap_sample.png b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/local_shap_sample.png new file mode 100644 index 0000000000000000000000000000000000000000..9c6ccd1a91a24808ae4eefafeb505a0babfd5c75 GIT binary patch literal 43530 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 literal 0 HcmV?d00001 From 1f6e8fdefbded7b7aa904d1076ddf5f889185624 Mon Sep 17 00:00:00 2001 From: es-dell <168178251+es-dell@users.noreply.github.com> Date: Fri, 16 Aug 2024 01:00:19 +0800 Subject: [PATCH 3/4] Delete stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled --- .../algorithms/local_shap_toolbox/images/untitled | 1 - 1 file changed, 1 deletion(-) delete mode 100644 stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled deleted file mode 100644 index 8b1378917..000000000 --- a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/images/untitled +++ /dev/null @@ -1 +0,0 @@ - From 6dbf515b5e8364567de5be12d5e58d7a6ac14c6d Mon Sep 17 00:00:00 2001 From: es-dell <168178251+es-dell@users.noreply.github.com> Date: Fri, 16 Aug 2024 01:00:43 +0800 Subject: [PATCH 4/4] update README --- .../algorithms/local_shap_toolbox/README.md | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/README.md b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/README.md index 217bd9cf1..727b2a6c4 100644 --- a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/README.md +++ b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/local_shap_toolbox/README.md @@ -1,10 +1,34 @@ -# Algorithm - local SHAP toolbox +# SHAP Toolbox ## Description -* local shap algorithm +This plugin explains how your features affect your overall prediction for a single row of data by using Shapley Values. -## License -* Licensed under Apache Software License 2.0 +## Plugin Content +- Algorithms + +| Name | Description | +| ------------------ | ------------------------------------------------------------------------------------------------ | +| SHAP Toolbox | SHAP (SHapley Additive exPlanations) is a game theoretic approach to explain the output of any machine learning model. | -## Developers: -* Example Author +- Widgets + +| Name | Description | +| -------------------------- | ---------------------------------------------------------------------------------------- | +| Local Explainability Chart | To display the SHAP values using a bar chart for the selection row, and display row data | + +## Using the Plugin in AI Verify +### Data Preparation +- Tabular dataset ([Tutorial for Preparation](https://imda-btg.github.io/aiverify/getting-started/prepare-tabular/)) + +### Algorithm User Input(s) + +| Input Field | Description | Type | +| --------------------------- | -----------------------------------------------------------| :------: | +| Row Number | Row number of data to perform local explainability test | `int` | +| Path of the background data | Background data path | `string` | +| Size of the background | Background samples (eg. 25) | `int` | +| Size of the test dataset | Data Samples (eg. 25) | `int` | + +### Sample use of the widgets + +![SHAP sample](images/local_shap_sample.png) \ No newline at end of file