通过 h2o 集成模型找到每个特征对进行特定预测的贡献

Finding contribution by each feature into making particular prediction by h2o ensemble model

我正在尝试解释 h2o GBM 模型做出的决定。基于想法:https://medium.com/applied-data-science/new-r-package-the-xgboost-explainer-51dd7d1aa211 我想计算每个功能在测试时做出特定决定的贡献。 是否有可能从 ensable 中获取每个单独的树以及每个节点的对数赔率? 在进行预测时,还需要按模型遍历每棵树的路径。

H2O 没有等效的 xgboostExplainer 包。但是,有一种方法可以接近一些东西。

1) 如果你想知道单个 row/observation 采取了什么决策路径,你可以使用 h2o.predict_leaf_node_assignment(model, frame) 来获得一个带有叶节点分配的 H2OFrame,它会生成一些看起来像以下(显示在以下情况下构建的每棵树的路径,您可以看到构建了 5 棵树):

2) 您可以使用 H2O 的 MOJO 可视化单个树,您可以在构建 GBM 或 XGBoost 模型后下载它,它看起来如下所示:

3) 在即将发布的版本中,您将能够使用 GBM 获取每个叶节点的预测值(对此的拉取请求是 here

将所有这些步骤放在一起应该会让您非常接近获得所需的值,因此您可以将它们加起来以产生您的个人功能影响。(对于 python jupyter notebook,其中包含有关如何生成叶节点分配和可视化树外观 here)