基于 TreeSHAP 算法(论文 arXiv:1802.03888)的树集成 SHAP 解释器。
该解释器把多棵 PkTree 的逐特征贡献相加, 并且把所有树的期望值(cover 加权叶值均值)与一个常数偏置项 (TreeShapExplainer.Intercept,例如梯度提升模型的 base score)相加作为最终的基线值。
因此对于任意样本 x 都有:sum(Explain(x)) + Baseline = 集成的加性输出。
基于 TreeSHAP 算法(论文 arXiv:1802.03888)的树集成 SHAP 解释器。
该解释器把多棵 PkTree 的逐特征贡献相加, 并且把所有树的期望值(cover 加权叶值均值)与一个常数偏置项 (TreeShapExplainer.Intercept,例如梯度提升模型的 base score)相加作为最终的基线值。
因此对于任意样本 x 都有:sum(Explain(x)) + Baseline = 集成的加性输出。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 1 | |
| Explain | 1 | 计算样本的逐特征 TreeSHAP 贡献值(不包含基线值)。 |
| ExpectedValue | 1 | 计算单棵树的期望输出,即按照节点 cover 进行加权的叶值均值。 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| Trees | 1 | 组成该集成的所有二叉树。 |
| TreeBaselines | 1 | 每一棵树的期望输出 E[f_t]。 |
| Intercept | 1 | 叠加在树集成输出之上的常数偏置项(例如 GBM 的 first_round_pred)。 |
| FeatureNames | 1 | |
| Baseline | 1 | |
| Size | 1 |
04 Members
IEnumerable(Of PkTree), String(), IEnumerable(Of Double), Double)| Name | Type | Description |
|---|---|---|
trees | IEnumerable(Of PkTree) | 组成集成的所有二叉树 |
treeBaselines | String() | 每一棵树的期望输出,缺省时会根据树的 cover 自动计算 |
featureNames | IEnumerable(Of Double) | 特征名字 |
intercept | Double | 叠加的常数偏置项 |
Double())计算样本的逐特征 TreeSHAP 贡献值(不包含基线值)。
| Name | Type | Description |
|---|---|---|
x | Double() | - |
计算单棵树的期望输出,即按照节点 cover 进行加权的叶值均值。
| Name | Type | Description |
|---|---|---|
tree | PkTree | - |
组成该集成的所有二叉树。
每一棵树的期望输出 E[f_t]。
叠加在树集成输出之上的常数偏置项(例如 GBM 的 first_round_pred)。