Поиск вклада каждого признака в конкретный прогноз по модели ансамбля 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 с примерами того, как сгенерировать назначения конечных узлов и визуализировать дерево, смотрите здесь)

Другие вопросы по тегам