From aa77116c16f3b4f57e84ff7837321e1e1d993bb3 Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Tue, 15 Oct 2024 19:10:32 -0400 Subject: [PATCH] Add XGB explainability output (#3044) * Add XGB explainability output * typo fix * format fix --- .../figures/shap_beeswarm_base.png | Bin 0 -> 53182 bytes .../figures/shap_beeswarm_gnn.png | Bin 0 -> 57519 bytes .../nvflare/xgb_embed_data_loader.py | 17 ++++++++++++++--- .../nvflare/xgb_job_embed.py | 4 ++-- .../runners/xgb_client_runner.py | 12 ++++++++++++ 5 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 examples/advanced/finance-end-to-end/figures/shap_beeswarm_base.png create mode 100644 examples/advanced/finance-end-to-end/figures/shap_beeswarm_gnn.png diff --git a/examples/advanced/finance-end-to-end/figures/shap_beeswarm_base.png b/examples/advanced/finance-end-to-end/figures/shap_beeswarm_base.png new file mode 100644 index 0000000000000000000000000000000000000000..e673ba52c9c397b621d39bb08602eb5a1402efc2 GIT binary patch literal 53182 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 J>N$hk{|8P}1hfDE literal 0 HcmV?d00001 diff --git a/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py b/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py index aec50a5711..1da5626339 100644 --- a/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py +++ b/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py @@ -30,7 +30,19 @@ def __init__(self, root_dir: str, file_postfix: str): self.file_postfix = file_postfix for name in self.dataset_names: self.base_file_names[name] = name + file_postfix - self.numerical_columns = [f"V_{i}" for i in range(64)] + + self.numerical_columns = [ + "Timestamp", + "Amount", + "trans_volume", + "total_amount", + "average_amount", + "hist_trans_volume", + "hist_total_amount", + "hist_average_amount", + "x2_y1", + "x3_y2", + ] + [f"V_{i}" for i in range(64)] def initialize( self, client_id: str, rank: int, data_split_mode: xgb.core.DataSplitMode = xgb.core.DataSplitMode.ROW @@ -40,11 +52,10 @@ def initialize( def load_data(self) -> Tuple[xgb.DMatrix, xgb.DMatrix]: data = {} for ds_name in self.dataset_names: - print("\nloading for site = ", self.client_id, f"{ds_name} dataset") + print("\nloading for site = ", self.client_id, f"{ds_name} dataset \n") file_name = os.path.join(self.root_dir, self.client_id, self.base_file_names[ds_name]) print(file_name) print(self.numerical_columns) - print("\n") df = pd.read_csv(file_name) data_num = len(data) diff --git a/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py b/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py index 26e76b60a0..6ee1e3675f 100644 --- a/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py +++ b/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py @@ -107,8 +107,8 @@ def define_parser(): "--file_postfix", type=str, nargs="?", - default="_embedding.csv", - help="file ending postfix, such as '.csv', or '_embedding.csv'", + default="_combined.csv", + help="file ending postfix, such as '.csv', or '_combined.csv'", ) parser.add_argument("-co", "--config_only", action="store_true", help="config only mode, will not run simulator") diff --git a/nvflare/app_opt/xgboost/histogram_based_v2/runners/xgb_client_runner.py b/nvflare/app_opt/xgboost/histogram_based_v2/runners/xgb_client_runner.py index 66a52a100a..bd73312a3f 100644 --- a/nvflare/app_opt/xgboost/histogram_based_v2/runners/xgb_client_runner.py +++ b/nvflare/app_opt/xgboost/histogram_based_v2/runners/xgb_client_runner.py @@ -15,6 +15,8 @@ import os from typing import Tuple +import matplotlib.pyplot as plt +import shap import xgboost as xgb from xgboost import callback @@ -222,6 +224,16 @@ def run(self, ctx: dict): bst.save_model(os.path.join(self._model_dir, self.model_file_name)) xgb.collective.communicator_print("Finished training\n") + # Save explanability outputs based on val_data + explainer = shap.TreeExplainer(bst) + explanation = explainer(val_data) + + # save the beeswarm plot to png file + shap.plots.beeswarm(explanation, show=False) + img = plt.gcf() + img.subplots_adjust(left=0.3, right=0.9, bottom=0.3, top=0.9) + img.savefig(os.path.join(self._model_dir, "shap_beeswarm.png"), bbox_inches="tight") + self._stopped = True def stop(self):