随机森林(RanFog)模型的 SHAP 适配器。
该适配器把 RanFog 训练之后保留下来的树结构(RanFog.Trees) 转换为 TreeSHAP 所需的 PkTree,从而可以计算精确的 森林 SHAP 值。同时它也提供对新样本的预测能力。
随机森林(RanFog)模型的 SHAP 适配器。
该适配器把 RanFog 训练之后保留下来的树结构(RanFog.Trees) 转换为 TreeSHAP 所需的 PkTree,从而可以计算精确的 森林 SHAP 值。同时它也提供对新样本的预测能力。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| Train | 1 | 在给定的数据集之上训练一个随机森林。 |
| Predict | 1 | 对新样本进行预测。分类任务返回正类概率,回归任务返回回归值。 |
| Output | 1 | 模型在单个样本上的原始输出。 |
| BuildExplainer | 1 | 构建随机森林的 TreeSHAP 解释器(多棵树贡献求和)。 |
| BuildNode | 1 | 把 RanFog 的分支数组递归地转换为 PkNode。 |
03 Properties
04 Members
在给定的数据集之上训练一个随机森林。
| Name | Type | Description |
|---|---|---|
dataset | ShapDataset | 训练数据集 |
isClassification | Boolean | 是否进行分类任务 |
maxTrees | Int32 | 树的数量,默认 30(原始缺省值为 500,在小样本演示场景下过慢) |
maxBranch | Int32 | 单棵树的最大分支数量 |
mtry | Int32 | 每个节点随机选择的特征数量,小于等于 0 时使用 |
Double()())对新样本进行预测。分类任务返回正类概率,回归任务返回回归值。
| Name | Type | Description |
|---|---|---|
features | Double()() | - |
Double())模型在单个样本上的原始输出。
| Name | Type | Description |
|---|---|---|
x | Double() | - |
构建随机森林的 TreeSHAP 解释器(多棵树贡献求和)。
RanFog.Predict() 返回的是所有树叶值的平均值, 而 TreeSHAP 的贡献是多棵树相加,因此这里必须把每一棵树的叶值 按照 1/树的数量 进行缩放,才能保证 sum(contributions) + baseline = 森林预测值 成立。
Branch(), Int32, Double, Double, HashSet(Of Int32))把 RanFog 的分支数组递归地转换为 PkNode。
RanFog 在均值处进行二分,因此当某一个子节点为空样本集合的时候, 该分裂是没有意义的(并且会导致 TreeSHAP 的路径权重出现除零), 此时会将该节点直接坍缩为叶节点。
训练好的随机森林模型。
训练数据集。