代码之家  ›  专栏  ›  技术社区  ›  thirdeye802

利用h2o系综模型寻找每个特征对特定预测的贡献

  •  0
  • thirdeye802  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Lauren    6 年前

    H2O没有等效的XGBoostExplaner包。然而,有一种方法可以接近某些东西。

    1) 如果您想知道针对单行/观察采取了什么决策路径,可以使用 h2o.predict_leaf_node_assignment(model, frame) 要获得一个带有叶节点分配的H2OFrame,它将生成如下所示的内容(显示在以下情况下构建的每棵树的路径,您可以看到构建了5棵树):

    enter image description here

    2) 您可以使用H2O的可视化单个树 MOJO 一旦构建了GBM或XGBoost模型,您就可以下载它,其外观如下所示:

    enter image description here

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

    将所有这些步骤放在一起,应该可以让您非常接近获得所需的值,这样您就可以将它们相加,以应对您个人的功能影响。(对于python jupyter笔记本,提供了如何生成叶节点分配和可视化树外观的示例 here )