【问题标题】:Reducing variable set of a prediction data frame by fetching variables from a tree model通过从树模型中获取变量来减少预测数据帧的变量集
【发布时间】:2011-03-14 15:53:39
【问题描述】:

我建立了一个 rpart 树模型,现在我想从一个大的预测数据帧(超过 7.000 个变量)中提取这个模型中使用的变量,因为我必须在预测之前对这个预测数据帧进行一些计算,这个计算超出记忆。

现在我不知道如何从 rpart 模型中提取变量。对于 randomForest 模型,有函数 varUsed,但也许可以通过一般方式解决问题,对于 glm 模型也是如此

rpart-Model 上的

names() 回馈:

"frame"     "where"     "call"      "terms"     "cptable"   "splits"    "method"
"parms"     "control"   "functions" "model"     "y"         "ordered" 

拆分值返回:

count ncat     improve index        adj  
**m24_a_ec_fakt**               6000   -1 0.026346646  0.15 0.00000000  
**m24_a_ec_fakt_dwl**           6000   -1 0.026346646  0.15 0.00000000  
**m3_a_fak_rech**               6000   -1 0.022821246  0.30 0.00000000  
**m9_a_ec_fakt**                6000   -1 0.021599372  0.05 0.00000000  
**m9_a_ec_fakt_dwl**            6000   -1 0.021599372  0.05 0.00000000  
... 

分割是一个矩阵,第一列(?)是变量名。

我可以在这个矩阵上以某种方式引用来按名称过滤我的预测数据帧的变量吗?

类似:

newPredDM<- oldPredDM[  --GET THE VARIABLE NAMES FROM rpart-Modell somehow--  ]

问候并感谢您的帮助, 雷纳

【问题讨论】:

    标签: r variables model tree dataframe


    【解决方案1】:

    返回值的结构见help("rpart.object")。自从

    frame: 一行数据框 树中的每个节点。 [...] 元素 ‘frame’ 包括 ‘var’,一个因子 给出拆分中使用的变量 在每个节点

    您可以使用levels(fit$frame$var)[-1] 将列作为字符串向量获取并使用类似

    newPredDM<- oldPredDM[, levels(fit$frame$var)[-1]]
    

    供您选择。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      相关资源
      最近更新 更多