H2O随机森林模型中predValue字段的含义

Meaning of predValue field in H2O Random forest model

提问人:Vijay Kansal 提问时间:11/14/2023 最后编辑:desertnautVijay Kansal 更新时间:11/15/2023 访问量:24

问:

我在 spark 数据帧上使用方法构建了一个模型,目标列包含值 0 或 1。我分别使用 和 函数下载并打印了它的 mojo 文件。部分此类输出树如下所示。H2ORandomForestEstimatortrain()model.download_mojo(MOJO_ZIP_PATH)h2o.print_mojo(MOJO_ZIP_PATH, tree_index=tree_ind)

可以看出,叶节点有一个名为 0 到 1 的值的字段。这个字段的含义是什么?这是否意味着如果输入变量在调用时碰巧满足此根到叶路径,则目标变量可能包含字段中包含的值?predValuepredValuepredValuepredict()

此外,我想对输出模型进行预处理,并仅过滤我的模型将预测 1 的那些规则(根到叶路径)。有没有办法通过解析 mojo 文件来过滤此类规则,而无需在输入变量上实际运行函数? 输出 mojo 文件中的字段看起来很有希望解决这个问题,但我无法弄清楚它与输出变量的相关性。它可以用来找出前 N 条规则吗?H2ORandomForestEstimatorpredict()predValue

'trees': [{
    'root': {
        'nodeNumber': 0,
        'weight': 18319.0,
        'colId': 169,
        'colName': 'pkg_items_gl_product_group_desc_1.gl_electronics',
        'leftward': True,
        'isCategorical': False,
        'inclusiveNa': True,
        'splitValue': 0.5,
        'rightChild': {
            'nodeNumber': 25,
            'weight': 462.0,
            'predValue': 0.9935065
        },
        'leftChild': {
            'nodeNumber': 1,
            'weight': 17857.0,
            'colId': 0,
            'colName': 'pkg_attr_total_pkg_price',
            'leftward': True,
            'isCategorical': False,
            'inclusiveNa': True,
            'splitValue': 186.52805,
            'rightChild': {
                'nodeNumber': 26,
                'weight': 201.0,
                'predValue': 0.9900498
            },
            'leftChild': {
                'nodeNumber': 3,
                'weight': 13184.0,
                'colId': 149,
                'colName': 'pkg_items_gl_product_group_desc_1.gl_automotive',
                'leftward': True,
                'isCategorical': False,
                'inclusiveNa': True,
                'splitValue': 0.5,
                'rightChild': {
                    'nodeNumber': 27,
                    'weight': 312.0,
                    'predValue': 0.99038464
                },
机器学习 Pyspark 随机森林 决策树 H2O

评论


答:

0赞 Maurever 11/15/2023 #1

谢谢你的问题。

每个叶节点都包含 = 有关在该节点上做出的最终预测的信息。predValue

请参阅此处的树结构信息:

若要获取结果预测为 0 或 1 的信息,必须获取用于这些决策的阈值 ()。您可以在模型信息中找到。default_thresholddefault_threshold

您可以获取具体节点的决策路径 see 或整个树的决策路径,请参见。decision_pathstree_decision_path

如果您对叶节点分配感兴趣,请参阅 https://docs.h2o.ai/h2o/latest-stable/h2o-docs/performance-and-prediction.html?#predicting-leaf-node-assignment

如果您有其他问题,请告诉我。