बेतरतीब मॉडल के लिए कैरेट varImp


10

मुझे यह समझने में परेशानी हो रही है कि पैकेज के varImpसाथ यादृच्छिक यादृच्छिक मॉडल के लिए फ़ंक्शन कैसे काम करता है caret। नीचे दिए गए उदाहरण में सुविधा var3 को कैरेट के varImpफ़ंक्शन का उपयोग करके शून्य महत्व मिलता है , लेकिन अंतर्निहित randomForest अंतिम मॉडल में सुविधा var3 के लिए गैर-शून्य महत्व है। यह एक केस क्यों है?

require(randomForest)
require(caret)


rf <- train(x, y, 
      method = "rf",
      trControl = trainControl(method = "oob"),
      importance = TRUE,
      verbose = TRUE,
      tuneGrid = data.frame(mtry = num.predictors) )


fm <- rf$finalModel


> varImp(f)
rf variable importance

       Overall
var1    100.00
var2    80.14
var3    0.00


> importance(fm)
        %IncMSE IncNodePurity
var2    872.7935      40505276
var1    1021.4707      55682866
var3     273.0168       3078731

मैंने एक मॉडरेटर का झंडा सेट किया है b / c यह SO के लिए ऑफ टॉपिक है। CrossValidated.com के लिए अधिक उपयुक्त
DWIN

जवाबों:


11

जैसा कि मैंने समझा कि आपके पास केवल 3 चर हैं। डिफ़ॉल्ट varImpफ़ंक्शन द्वारा रेंज 0-100 में स्केल किए गए परिणाम देता है। वर 3 का सबसे कम महत्व मूल्य है और इसका छोटा महत्व शून्य है। फोन करने की कोशिश करें varImp(rf, scale = FALSE)


0

आगे के अंतर्ज्ञान प्रदान करने के लिए @ DrDom के उत्तर को जोड़ना:

जो महत्त्वपूर्ण अंक varImp(rf, scale = FALSE)देता है, उसकी गणना निम्नलिखित द्वारा की जाती है: rf$finalModel$importance[,1]/rf$finalModel$importanceSD

यह फीचर का औसत% IncMSE है जो अपने मानक विचलन द्वारा विभाजित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.