Поиск вклада каждого признака в конкретный прогноз по модели ансамбля H2O
Я пытаюсь объяснить решение, принятое моделью h2o GBM. исходя из идеи: https://medium.com/applied-data-science/new-r-package-the-xgboost-explainer-51dd7d1aa211 Я хочу рассчитать вклад каждой функции в принятие определенного решения во время тестирования. Можно ли получить каждое отдельное дерево из поддельного вместе с лог-коэффициентами на каждом узле? также потребуется обход пути для каждого дерева по модели при прогнозировании.
1 ответ
H2O не имеет эквивалентного пакета xgboostExplainer. Тем не менее, есть способ получить что-то близкое.
1) если вы хотите знать, какой путь принятия решения был выбран для отдельной строки / наблюдения, вы можете использовать h2o.predict_leaf_node_assignment(model, frame)
чтобы получить H2OFrame с назначениями конечных узлов, который сгенерирует что-то похожее на следующее (показывая путь для каждого дерева, построенного в следующем случае, вы можете видеть, что было построено 5 деревьев):
2) вы можете визуализировать отдельные деревья, используя MOJO от H2O, который вы можете скачать после того, как построите модель GBM или XGBoost, которая будет выглядеть примерно так:
3) в следующем выпуске вы сможете получить значение прогнозирования для каждого конечного узла, используя GBM (запрос на получение этого здесь)
Объединение всех этих шагов должно приблизить вас к получению нужных значений, чтобы вы могли сложить их для индивидуального воздействия на особенности (для блокнота Python Jupyter с примерами того, как сгенерировать назначения конечных узлов и визуализировать дерево, смотрите здесь)