我建立了一个rpart树模型,现在我想从一个大的预测数据(超过7.000个变量)中提取这个模型中使用的变量,因为在预测之前,我必须对这个预测数据进行一些计算,而且这个计算超出了内存。
现在我不知道如何从rpart模型中提取变量。对于随机森林模型,有函数varUsed,,但是也许这个问题可以用一般的方式来解决,对于glm模型的也是一样。
rpart-Model上的name()返回:
"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-- ]敬请帮助,雷纳
发布于 2011-03-14 17:47:30
有关返回值的结构,请参见help("rpart.object")。因为
帧:树中每个节点都有一行的数据帧。..。“frame”的元素包括‘var’,这是给出在每个节点的拆分中使用的变量的一个因素。
您可以使用levels(fit$frame$var)[-1]获取作为字符串向量的列,并使用以下内容
newPredDM<- oldPredDM[, levels(fit$frame$var)[-1]]供你挑选。
希望这能有所帮助。
https://stackoverflow.com/questions/5301043
复制相似问题