R- वर्ग की तुलना दो अलग-अलग रैंडम फ़ॉरेस्ट मॉडल से करें


10

मैं नमूनों की तुलना में अधिक भविष्यवक्ताओं के साथ "विस्तृत" डेटासेट में निरंतर परिणाम की व्याख्या करने की कोशिश करने के लिए एक यादृच्छिक वन मॉडल विकसित करने के लिए आर में यादृच्छिकतम पैकेज का उपयोग कर रहा हूं।

विशेष रूप से, मैं एक आरएफ मॉडल फिटिंग कर रहा हूं, जो प्रक्रिया को ~ 75 भविष्यवक्ता चर के एक सेट से चुनने की अनुमति देता है जो मुझे लगता है कि महत्वपूर्ण हैं।

मैं इस बात का परीक्षण कर रहा हूं कि मॉडल पहले से पोस्ट किए गए दृष्टिकोण का उपयोग करके, एक आरक्षित परीक्षण सेट के लिए वास्तविक परिणाम की कितनी अच्छी भविष्यवाणी करता है , अर्थात्

... या आर में:

1 - sum((y-predicted)^2)/sum((y-mean(y))^2)

लेकिन अब मेरे पास एक अतिरिक्त ~ 25 भविष्यवक्ता चर हैं जिन्हें मैं जोड़ सकता हूं। ~ 100 भविष्यवाणियों के सेट का उपयोग करते समय, R higher अधिक होता है। मैं दूसरे शब्दों में सांख्यिकीय रूप से इस परीक्षण करने के लिए, चाहते हैं, जब ~ 100 भविष्यवक्ताओं के सेट का उपयोग कर, मॉडल परीक्षण करता है काफी बेहतर ~ 75 भविष्यवक्ताओं का उपयोग कर मॉडल फिट से डेटा के परीक्षण में। यानी, कम डेटासेट पर RF मॉडल के परीक्षण से R is की तुलना में पूर्ण डेटासेट पर RF मॉडल के फिट होने के परीक्षण से R² है।

यह मेरे लिए परीक्षण करने के लिए महत्वपूर्ण है, क्योंकि यह पायलट डेटा है, और उन अतिरिक्त 25 भविष्यवक्ताओं को प्राप्त करना महंगा था, और मुझे यह जानने की जरूरत है कि क्या मुझे एक बड़े अनुवर्ती अध्ययन में उन भविष्यवक्ताओं को मापने के लिए भुगतान करना चाहिए।

मैं किसी तरह की resampling / क्रमचय दृष्टिकोण के बारे में सोचने की कोशिश कर रहा हूं, लेकिन कुछ भी समझ में नहीं आता है।

जवाबों:


8

क्रॉस सत्यापित करें! अपने 2 मॉडल को फिट करने के लिए कैरट में ट्रेन फ़ंक्शन का उपयोग करें । Mtry के एक मान (दोनों मॉडल के लिए समान) का उपयोग करें। कैरेट आरएमएसई और का फिर से नमूना अनुमान लगाएगा ।R2

कैरेट विगनेट के पेज 3 ( पूर्ण संदर्भ मैनुअल में भी ) देखें


मैं आपकी चूक को छोड़कर सहमत हूं कि ओपी को आर-स्क्वेर समायोजित का उपयोग करना चाहिए, क्योंकि यह वही है जिसे इसके लिए डिज़ाइन किया गया है। मॉडल में एक ही वाई है लेकिन अलग-अलग भविष्यवक्ता सेट हैं, इसलिए आर-स्क्वेर समायोजित को स्वतंत्रता / मॉडल जटिलता की खर्च की गई डिग्री में अंतर के लिए दंडित करने की आवश्यकता है। दूसरी समस्या जो मुझे दिखाई दे रही है वह संभावित रूप से एक नमूना आकार का मुद्दा है; ओपी को मास्सिव सैंपल साइज की आवश्यकता होगी, किसी भी प्रकार की वास्तविक आशा के लिए यह ओवरफिटिंग नहीं है, यहां तक ​​कि सीवी के साथ भी।
एलएससी

@ एलएससी मैं यह कहूंगा कि यदि अतिरिक्त डेटासेट (चयन के लिए उपयोग नहीं किया जाता है) को होल्ड किया जाता है, तो वे समायोजन के बिना R2 का उपयोग कर सकते हैं, जैसा कि इसका सामान्य आरएमएसई है। मैं सहमत हूं कि उन्हें ऐसा करने के लिए एक बहुत बड़े डेटासेट की आवश्यकता होगी।
जाच

नया डेटा या पुराना, बाकी सभी स्थिर, एक मॉडल बनाम 25 में 100 शब्द डालने पर 25 पूर्वानुमान मॉडल से आर-वर्ग की तुलना में एक उच्च अनपेक्षित आर-वर्ग होगा। यह आसानी से देखा जाता है जब दोनों के बीच चुकता त्रुटियों का योग (अधिक शब्द कम एसएसई है, बाकी सभी समान हैं)। मुझे लगता है कि लोग अक्सर यह भूल जाते हैं कि अधिक शर्तें कभी भी आर-स्क्वेर को कम नहीं करेंगी, लेकिन अगर वे अपने मूल्य के सापेक्ष बदबू करते हैं, तो उन्हें समायोजित आर-स्क्वेर में कमी की जा सकती है जो हिरन के लिए धमाके को देखने के लिए उपयोग करने के लिए एक बेहतर उपाय है।
एलएससी

"अधिक शर्तें कभी भी आर-स्क्वेर को कम नहीं करेंगी" <- यह कथन गलत है, जब नमूने से आर 2 की गणना की जाती है।
Zach

जैसा कि मैंने उल्लेख किया है, मैं इसे इंगित कर रहा हूं क्योंकि ये सवाल पूछने वाले कई लोग इस विचार को पहली जगह में याद नहीं करते हैं। मुझे लगता है कि यह समझना कि यह क्यों नमूना में सच है और नए डेटा पर पकड़ नहीं हो सकती है यह समझना महत्वपूर्ण है कि मूल समीकरण में क्या और कैसे कुछ अनुकूलित किया गया है।
एलएससी

4

R2

साइड ऑप्शन सभी प्रासंगिक फीचर चयन का उपयोग करने के लिए है, जो आपको बताएंगे कि कौन से विशेषताओं में वर्गीकरण के लिए महत्वपूर्ण रूप से उपयोगी होने का मौका है - इस तरह मौसम उन महंगी विशेषताओं का मूल्य है। यह उदाहरण के लिए एक आरएफ आवरण, बोरुता के साथ किया जा सकता है ।


एक युग्मित परीक्षण के लिए, मुझे लगता है कि 2 मॉडल एक ही तह पर फिट हैं? ताकि matrx की k की पंक्तियाँ सिलवटों की हों और दो कॉलम मॉडल 1 और मॉडल 2 की हों?
B_Miner

@B_Miner सटीक।

1

आप सांख्यिकीय महत्व (या दोनों) के बजाय व्यावहारिक महत्व के बारे में सोचना चाह सकते हैं। पर्याप्त डेटा के साथ आप सांकेतिक रूप से ऐसी चीजें पा सकते हैं जिनका आपके उपयोग पर कोई वास्तविक प्रभाव नहीं होगा। मुझे याद है कि एक बार एक मॉडल का विश्लेषण किया गया था जिसमें 5-वे इंटरैक्शन सांख्यिकीय रूप से महत्वपूर्ण थे, लेकिन जब मॉडल से 5-वे इंटरैक्शन तक की सभी चीजों सहित भविष्यवाणियों की तुलना मॉडल से केवल 2-वे इंटरैक्शन और मुख्य प्रभावों सहित पूर्वानुमानों से की गई थी सबसे बड़ा अंतर 1 व्यक्ति से कम था (प्रतिक्रिया लोगों की संख्या थी और सभी दिलचस्प मूल्य 0 से दूर थे)। तो जोड़ा जटिलता इसके लायक नहीं था। इसलिए अपनी भविष्यवाणियों के अंतर को देखें कि क्या अंतर अतिरिक्त लागत का औचित्य साबित करने के लिए पर्याप्त हैं, यदि नहीं, तो सांख्यिकीय महत्व की तलाश में भी परेशान क्यों हैं? यदि अंतर वास्तविक होने पर लागत को उचित ठहराने के लिए पर्याप्त बड़ा है, तो मैं क्रॉस वैधीकरण का उपयोग करने के अन्य suestions को दूसरा मानता हूं।


1

R2

library(randomForest)
data(iris)
set.seed(42)

# split the data into training and testing sets
index <- 1:nrow(iris)
trainindex <- sample(index, trunc(length(index)/2))
trainset <- iris[trainindex, ]
testset <- iris[-trainindex, ]

# with species
model1 <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length +
   Petal.Width + Species, data = trainset)
# without species
model2 <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length + 
   Petal.Width, data = trainset)

pred1 <- predict(model1, testset[, -1])
pred2 <- predict(model2, testset[, -1])

y <- testset[, 1]
n <- length(y)

# psi is the mean squared prediction error (MSPE) estimate
# sigma2 is the estimate of the variance of the MSPE
psi1 <- mean((y - pred1)^2)
sigma21 <- 1/n * var((y - pred1)^2) 
# 95% CI:
c(psi1 - 1.96 * sqrt(sigma21), psi1, psi1 + 1.96 * sqrt(sigma21))

psi2 <- mean((y - pred2)^2)
sigma22 <- 1/n * var((y - pred2)^2) 
# 95% CI:
c(psi2 - 1.96 * sqrt(sigma22), psi2, psi2 + 1.96 * sqrt(sigma22))

विधि को क्रॉस-वैलिडेशन के भीतर काम करने के लिए भी बढ़ाया जा सकता है (न कि केवल नमूना-विभाजन जैसा कि ऊपर दिखाया गया है)।


0

चूँकि आप randomForestक्रॉस-वेलिडेट करने के बाद पहले से ही उपयोग कर रहे हैं, आप भविष्यवाणियों के महत्व मूल्यों के लिए चुने गए फिट की गणना का उत्सर्जन कर सकते हैं।

> require(randomForest)
> rf.fit = randomForest(Species~.,data=iris,importance=TRUE)
> rf.fit$importance
                  setosa   versicolor   virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 0.036340893  0.021013369 0.032345037          0.030708732         9.444598
Sepal.Width  0.005399468 -0.002131412 0.007499143          0.003577089         2.046650
Petal.Length 0.319872296  0.297426025 0.290278930          0.299795555        42.494972
Petal.Width  0.343995456  0.309455331 0.277644128          0.307843300        45.286720

0

मैं देख रहा हूं कि यह प्रश्न बहुत पहले पूछा जा चुका है; हालाँकि, कोई उत्तर अभी तक प्रश्न में महत्वपूर्ण कमियों और गलतफहमी को इंगित नहीं करता है।

कृपया ध्यान दें:

  1. आप कहते हैं कि R ^ 2 = ESS / TSS = 1 - RSS / TSS। यह केवल एक रैखिक संदर्भ में सच है। समानता टीएसएस = आरएसएस + ईएसएस अवरोधन के साथ रैखिक प्रतिगमन में सही है। इस प्रकार आप यादृच्छिक जंगलों के लिए उन परिभाषाओं का परस्पर उपयोग नहीं कर सकते हैं। यही कारण है कि आरएमएसई और इसी तरह के अधिक विशिष्ट नुकसान कार्य हैं।

  2. सांख्यिकीय उद्देश्यों के लिए अधिक महत्वपूर्ण: आर ^ 2 एक अज्ञात वितरण (रैखिक सेटिंग में भी) का अनुसरण करता है । इसका मतलब है, आर ^ 2 का उपयोग करके सांख्यिकीय महत्व के साथ एक परिकल्पना का परीक्षण करना उतना सरल नहीं है। पार-सत्यापन, जैसा कि ज़च द्वारा वर्णित है , एक अच्छा विकल्प है।

के रूप में user88 प्रतिक्रिया: Wilcoxon परीक्षण के साथ क्रॉस मान्यता एक वैध तरीका है। हाल के एक पेपर में विल्कोक्सन पर हस्ताक्षर किए गए रैंक्स टेस्ट और विभिन्न तरीकों और एल्गोरिदम की तुलना के लिए फ्राइडमैन परीक्षण का उपयोग किया गया है।

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