BONES
收藏BONES: 神经估计Shapley值的基准
BONES是一个用于基准测试神经估计Shapley值的Python库。
主要特点
- 解释器方法:提供九种(传统和神经)解释器方法,专门用于Shapley值计算。
- 评估指标:提供五种评估指标来比较模型。
- 数据模态支持:支持两种数据模态,并计划增加更多。
示例
开始使用
-
表格数据实验依赖安装: bash pip install requirements_tabular.txt
-
图像数据实验依赖安装: bash pip install requirements_image.txt
表格数据
基准设置
-
模块导入: python from bones.sv.tabular.explainers import FastSHAPModel, ShapRegModel, DASPModel, ExactModel from bones.sv.tabular.datasets import Monks, Census from bones.sv.tabular.metrics import L1, L2, Kendal from bones.sv.tabular.evaluation import Banckmark from bones.sv.tabular.display import TimeSamplePlot, TimeFeaturePlot, BarPlot, QuadrantPlot
-
创建基准: python benchmark=Benchmark( explainers=[FastSHAP, ShapReg, DASP], # 解释器 ground_truth=Exact, # 基准真值 dataset=[Monks, Census, Credit], # 数据集 metrics=[L1, L2, Kendal], # 评估指标 num_samples=100 # 样本数量 ).run()
-
打印结果: python benchmark.print_results(Monks) # 表格结果
可视化
-
样本数量与计算时间关系图: python TimeSamplePlot(benchmark, dataset=Monks, number_sample=100000, interval=10000, sample_method="random").plot()
-
特征数量与推理时间关系图: python TimeFeaturePlot(benchmark).plot()
-
Shapley值估计比较图: python BarPlot(bechmark, dataset=Monks).plot()
-
推理时间与距离比较图: python QuadrantPlot(benchmark, dataset=Monks).plot()
图像数据
基准设置
-
模块导入: python from bones.sv.image.explainers import FastSHAP, ViTShapley, DeepExplainer, GradientExplainer from bones.sv.image.datasets import ImageNette from bones.sv.image.metrics import L1, L2, AUC from bones.sv.image.evaluation import Banckmark from bones.sv.image.display import ImagePlot, AUC
-
创建基准: python benchmark=Benchmark( explainers=[ViTShapley, DeepExplainer, GradientExplainer], # 解释器 ground_truth=FastSHAP, # 基准真值 dataset=[ImageNette], # 数据集 metrics=[L1, L2, AUC], # 评估指标 num_samples=100 # 样本数量 ).run()
可视化
-
解释器在特定图像样本上的Shapley值掩码比较图: python ImagePlot(bechmark, datset=ImageNette, sample=0).plot()
-
重要特征包含/排除百分比与AUC关系图: python AUC(benchmark, dataset=ImageNette, num_sample=100).plot()
功能
表格数据
- 传统解释器:Exact, KernelSHAP, Unbiased KernelSHAP, Monte Carlo
- 神经解释器:DeepExplainer, GradientExplainer, FastSHAP, DASP
- 评估指标:L1距离, L2距离, Kendall相关性
- 可视化技术:BarPlot, QuadrantPlot, 时间/特征数量相关性, 时间/样本数量相关性
- 数据集:Monks, Credit, Magic, Census, Winsconsin Breast Cancer
图像数据
- 神经解释器:DeepExplaienr, GradientExplainer, FastSHAP, ViT-Shapley
- 评估指标:L1距离, L2距离, 包含AUC, 排除AUC
- 可视化技术:ImagePlot包含AUC, 排除AUC, 时间/样本数量相关性, ImagePlot
- 数据集:ImageNette, Pet
默认设置
- 表格数据:分类模型为MultiLayerPerceptron
- 图像数据:分类模型为预训练的ViT tiny版本
计划开发
- Python包
- DASP适应PyTorch
- DASP适应Tensorflow 2
- 文本数据支持
- 包含区间Shapley值
- 对齐需求

- 1BONES: a Benchmark fOr Neural Estimation of Shapley values都灵理工大学 · 2024年



