通过从树模型中获取变量来减少预测数据帧的变量集

时间:2011-03-14 15:53:40

标签: r variables model tree dataframe

我构建了一个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  
... 

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

我能否以某种方式引用此矩阵来按名称过滤我的预测数据帧的变量?

类似的东西:

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

问候和thnx寻求帮助, 赖

1 个答案:

答案 0 :(得分:0)

请参阅help("rpart.object")了解返回值的结构。由于

  

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

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

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

供您选择。

希望这有帮助。