You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取REEMctree模型中用于节点分裂的变量?

提取REEMctree模型中用于节点分裂的变量

REEMctree模型拟合结果是S3列表结构,而非S4对象,所以不能用slot()或@访问树结构;同时REEMctree.result$Tree是嵌套的树状列表,直接用%in%会因非向量参数报错。以下是可行的提取方法:

方法:递归遍历树结构收集分裂变量

REEMctree的树结构中,每个非叶子节点(非终端节点)的splitvar字段记录了用于分裂的变量名。我们可以写一个递归函数遍历整个树,收集所有分裂变量并去重:

# 定义递归函数提取分裂变量
get_split_vars <- function(tree_node) {
  # 终端节点(叶子)无分裂变量,返回空向量
  if (tree_node$terminal) {
    return(character(0))
  }
  # 当前节点的分裂变量
  current_var <- tree_node$splitvar
  # 递归遍历左右子节点
  left_vars <- get_split_vars(tree_node$left)
  right_vars <- get_split_vars(tree_node$right)
  # 合并所有变量并去重
  unique(c(current_var, left_vars, right_vars))
}

# 提取你的模型中的分裂变量
split_variables <- get_split_vars(REEMctree.result$Tree)
# 查看结果
split_variables

补充说明

  • 函数会自动遍历所有内部节点,收集所有用于分裂的变量,最后返回去重后的变量名向量,满足你“仅关注变量是否被用于分裂”的需求。
  • 如果需要查看每个分裂节点的变量(包含重复),去掉unique()即可。

内容的提问来源于stack exchange,提问作者Linus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:30:00