यादृच्छिक वन के लिए कैरेट के साथ फ़ीचर चयन और पैरामीटर ट्यूनिंग


12

मेरे पास कुछ हजार विशेषताओं के साथ डेटा है और मैं अनइनफॉर्मेटिव को हटाने के लिए पुनरावर्ती सुविधा चयन (RFE) करना चाहता हूं। मैं यह कार्यवाहक और RFE के साथ करता हूं । हालांकि, मैंने सोचना शुरू कर दिया, अगर मैं सबसे अच्छा प्रतिगमन फिट होना चाहता हूं (यादृच्छिक वन, उदाहरण के लिए), तो मुझे पैरामीटर ट्यूनिंग ( mtryआरएफ के लिए) कब करना चाहिए ? यही कारण है, के रूप में मैं समझता हूँ कैरट गाड़ियों एक निश्चित mtry के साथ अलग अलग सुविधा सबसेट पर बार-बार आरएफ। मुझे लगता है कि इष्टतम mtryके बाद सुविधा चयन समाप्त हो गया है पाया जाना चाहिए, लेकिन जाएगा mtryमूल्य कि कैरट का उपयोग करता है सुविधाओं में से चयनित सबसेट को प्रभावित? कम के साथ कैरट का उपयोग करना mtryबहुत तेज़ है, ज़ाहिर है।

आशा है कि कोई मुझे यह समझा सकता है।


2
RF में एक मजबूत अंतर्निहित फीचर चयन है - RFE का उपयोग करने की आवश्यकता नहीं है, इसलिए केवल mtry को ट्यून किया जा सकता है और इसके साथ किया जा सकता है।
येवगेनी

जवाबों:


11

एक चीज जिसे आप देखना चाहते हैं, वह है नियमित रूप से यादृच्छिक वन, जिन्हें विशेष रूप से सुविधा चयन के लिए डिज़ाइन किया गया है। यह पत्र अवधारणा की व्याख्या करता है, और वे सामान्य यादृच्छिक जंगलों से कैसे भिन्न होते हैं

नियमित पेड़ों के माध्यम से सुविधा का चयन

वहाँ भी एक CRAN पैकेज RRF है जो कि randomForest पर निर्मित है जो आपको उन्हें R में आसानी से कार्यान्वित करने की अनुमति देगा। मुझे इस पद्धति का सौभाग्य स्वयं मिला है।

आपके प्रारंभिक प्रश्न के बारे में, मैं केवल यही सलाह दे सकता हूं कि यदि आपके पास बहुत अधिक सहूलियत है, तो आपको छोटे पेड़ों के आकार का उपयोग करने की आवश्यकता है। यह एल्गोरिथ्म को कोलीनियरिटी प्रभाव से कम हस्तक्षेप के साथ महत्व निर्धारित करने की अनुमति देता है।


1

आप caretFuncs इस तरह से कुछ का उपयोग करने में सक्षम हो सकते हैं :

myRFE <- caretFuncs
myRFE$summary <- twoClassSummary  (default is defaultSummary)

rctrl <- rfeControl(method='repeatedcv', repeats=5, number=10,
                   functions=myRFE)

tctrl <- trainControl(method = "cv",
                      classProbs = TRUE,
                      summaryFunction = twoClassSummary)

rfeObj = rfe(x,y,sizes=seq(1,ncol(x),2),
             rfeControl=rctrl,  
             # to be passed to train()
             method='rf',
             importance=T,  # do not forget this
             ntree=1000,
             metric = "ROC",
             tuneLength = 10,
             # mtry=c(1,3,5,50),
             # specify the exact mtry, or tuneLength
             # can auto truncate the grid to minimal sizes (with or without warning)
             # p <- ncol(x) ... if (mtry < 1 || mtry > p) warning("invalid try: reset to within valid range") try <- max(1, min(p, round(try))) 
             trControl=tctrl)

इसके अलावा, कोई valSelRFपैकेज की जांच कर सकता है। यह सुनिश्चित नहीं है कि यह regularized random forestयहाँ वर्णित से कैसे भिन्न है।

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