2011-03-14 49 views
0

我構建了一個rpart樹模型,現在我想從該大型預測數據框(超過7.000個變量)中提取此模型中使用的變量,因爲我在預測之前必須對該預測數據幀進行一些計算,並且該計算超過了存儲器。通過從樹模型中提取變量來減少預測數據幀的變量集

現在我不知道如何從rpart模型中提取變量。對於randomForest模型,函數varUsed,,但也許可以用一般方法清除問題,對於glm模型也是如此。

名稱()在rpart包-模型還給:

"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-- ] 

問候和日Thnx的幫助, 賴

回答

0

的返回值的結構見help("rpart.object")。由於

frame:數據幀中有一行爲 樹中的每個節點。 [...]「框架」的要素 包括「var」或一個因子 給每個節點在分割 使用

可以使用levels(fit$frame$var)[-1]獲得的列作爲字符串矢量變量和使用像

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

供您選擇。

希望這會有所幫助。

相關問題