提问人:Vijay Kansal 提问时间:11/14/2023 最后编辑:desertnautVijay Kansal 更新时间:11/15/2023 访问量:24
H2O随机森林模型中predValue字段的含义
Meaning of predValue field in H2O Random forest model
问:
我在 spark 数据帧上使用方法构建了一个模型,目标列包含值 0 或 1。我分别使用 和 函数下载并打印了它的 mojo 文件。部分此类输出树如下所示。H2ORandomForestEstimator
train()
model.download_mojo(MOJO_ZIP_PATH)
h2o.print_mojo(MOJO_ZIP_PATH, tree_index=tree_ind)
可以看出,叶节点有一个名为 0 到 1 的值的字段。这个字段的含义是什么?这是否意味着如果输入变量在调用时碰巧满足此根到叶路径,则目标变量可能包含字段中包含的值?predValue
predValue
predValue
predict()
此外,我想对输出模型进行预处理,并仅过滤我的模型将预测 1 的那些规则(根到叶路径)。有没有办法通过解析 mojo 文件来过滤此类规则,而无需在输入变量上实际运行函数? 输出 mojo 文件中的字段看起来很有希望解决这个问题,但我无法弄清楚它与输出变量的相关性。它可以用来找出前 N 条规则吗?H2ORandomForestEstimator
predict()
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
},
答:
谢谢你的问题。
每个叶节点都包含 = 有关在该节点上做出的最终预测的信息。predValue
请参阅此处的树结构信息:
- 蟒蛇:https://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/tree.html
- R:https://docs.h2o.ai/h2o/latest-stable/h2o-r/docs/reference/H2OTree-class.html
若要获取结果预测为 0 或 1 的信息,必须获取用于这些决策的阈值 ()。您可以在模型信息中找到。default_threshold
default_threshold
您可以获取具体节点的决策路径 see 或整个树的决策路径,请参见。decision_paths
tree_decision_path
如果您对叶节点分配感兴趣,请参阅 https://docs.h2o.ai/h2o/latest-stable/h2o-docs/performance-and-prediction.html?#predicting-leaf-node-assignment。
如果您有其他问题,请告诉我。
评论