2013-09-02 11 views
7

मैं आर में एक मॉडल को प्रशिक्षित किया है:सबस्क्रिप्ट (randomForest के लिए कैरट चर महत्व)

require(caret) 
require(randomForest) 
myControl = trainControl(method='cv',number=5,repeats=2,returnResamp='none') 
model2 = train(increaseInAssessedLevel~., data=trainData, method = 'rf', trControl=myControl) 

डाटासेट काफी बड़ी है, लेकिन मॉडल ठीक चलाता है। मैं अपने हिस्से का उपयोग कर सकते हैं और इस तरह के रूप कमांड चलाने:

> model2[3] 
$results 
    mtry  RMSE Rsquared  RMSESD RsquaredSD 
1 2 0.1901304 0.3342449 0.004586902 0.05089500 
2 61 0.1080164 0.6984240 0.006195397 0.04428158 
3 120 0.1084201 0.6954841 0.007119253 0.04362755 

लेकिन मैं निम्नलिखित त्रुटि मिलती है:

> varImp(model2) 
Error in varImp[, "%IncMSE"] : subscript out of bounds 

जाहिर है वहाँ एक आवरण माना जाता है, लेकिन यह मामला हो प्रतीत नहीं होता है : (सीएफ: http://www.inside-r.org/packages/cran/caret/docs/varImp)

varImp.randomForest(model2) 
Error: could not find function "varImp.randomForest" 

लेकिन यह विशेष रूप से अजीब है:

> traceback() 
No traceback available 

> sessionInfo() 
R version 3.0.1 (2013-05-16) 
Platform: x86_64-redhat-linux-gnu (64-bit) 

locale: 
[1] LC_CTYPE=en_GB.UTF-8  LC_NUMERIC=C    
[3] LC_TIME=en_GB.UTF-8  LC_COLLATE=en_GB.UTF-8  
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 
[7] LC_PAPER=C     LC_NAME=C     
[9] LC_ADDRESS=C    LC_TELEPHONE=C    
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] parallel stats  graphics grDevices utils  datasets methods 
[8] base  

other attached packages: 
[1] elasticnet_1.1  lars_1.2   klaR_0.6-9   MASS_7.3-26  
[5] kernlab_0.9-18  nnet_7.3-6   randomForest_4.6-7 doMC_1.3.0   
[9] iterators_1.0.6 caret_5.17-7  reshape2_1.2.2  plyr_1.8   
[13] lattice_0.20-15 foreach_1.4.1  cluster_1.14.4  

loaded via a namespace (and not attached): 
[1] codetools_0.2-8 compiler_3.0.1 grid_3.0.1  stringr_0.6.2 
[5] tools_3.0.1 

उत्तर

12

train() कथन में, आपको importance=T विकल्प निर्दिष्ट करने की आवश्यकता है। यह अंतर्निहित यादृच्छिक वन कॉल को पारित कर दिया जाएगा। अन्यथा, महत्व की गणना नहीं की जाती है, जिससे आपको वह त्रुटि मिलती है।

संबंधित मुद्दे