2015-01-13 10 views
8

मैंने एक रिग्रेशन समस्या के लिए RandomForest का उपयोग किया। मैंने चर के लिए% IncMSE प्राप्त करने के लिए importance(rf,type=1) का उपयोग किया और उनमें से एक ऋणात्मक% IncMSE है। क्या इसका मतलब यह है कि मॉडल के लिए यह चर खराब है? मैंने कुछ जवाब पाने के लिए इंटरनेट की खोज की लेकिन मुझे स्पष्ट नहीं मिला। मैं भी कुछ मॉडल का सारांश (नीचे संलग्न) में अजीब पाया, ऐसा लगता है कि केवल एक ही पेड़ हालांकि मैं 800 के रूप में परिभाषित किया गया ntrees इस्तेमाल किया गया थाRandomForest पैकेज में नकारात्मक% IncMSE का क्या अर्थ है?

मॉडल:

rf<-randomForest(var1~va2+var3+..+var35,data=d7depo,ntree=800,keep.forest=FALSE, importance=TRUE) 

summary(rf) 
       Length Class Mode  
call    6 -none- call  
type    1 -none- character 
predicted  26917 -none- numeric 
mse    800 -none- numeric 
rsq    800 -none- numeric 
oob.times  26917 -none- numeric 
importance   70 -none- numeric 
importanceSD  35 -none- numeric 
localImportance  0 -none- NULL  
proximity   0 -none- NULL  
ntree    1 -none- numeric 
mtry    1 -none- numeric 
forest    0 -none- NULL  
coefs    0 -none- NULL  
y    26917 -none- numeric 
test    0 -none- NULL  
inbag    0 -none- NULL  
terms    3 terms call 

उत्तर

20

प्रश्न 1 - क्यों ntree शो 1 है?:

summary(rf) आपको उन वस्तुओं की लंबाई दिखाता है जो आपके rf चर में शामिल हैं। इसका मतलब है कि आप अपने कंसोल पर लिखते हैं, तो rf$tree आपको लगता है कि यह पता चलता है 800

प्रश्न 2 देखेंगे कि rf$ntree लंबाई 1. की है - एक नकारात्मक% IncMSE एक "बुरा" चर दिखाता है?

IncMSE:
तरीका यह गणना की जाती है पूरे मॉडल की एमएसई कंप्यूटिंग शुरू में कर रहा है। आइए इसे MSEmod पर कॉल करें। इसके बाद प्रत्येक चर (आपके डेटा सेट में कॉलम) के लिए मान यादृच्छिक रूप से shuffled (अनुमत) हैं ताकि एक "खराब" चर बनाया जा रहा है और एक नई एमएसई की गणना की जा रही है। अर्थात। इसके लिए एक कॉलम के लिए कल्पना करें कि आपकी पंक्ति 1,2,3,4,5 थी। क्रमपरिवर्तन के बाद ये यादृच्छिक रूप से 4,3,1,2,5 हो जाएगा। क्रमपरिवर्तन के बाद (अन्य सभी कॉलम बिल्कुल वही रहते हैं क्योंकि हम col1's महत्व की जांच करना चाहते हैं), मॉडल के नए एमएसई की गणना की जा रही है, चलिए इसे MSEcol1 पर कॉल करें (इसी तरह आपके पास MSEcol2, MSEcol3 होगा लेकिन चलो जारी रखें यह सरल है और केवल MSEcol1 के साथ सौदा)। हम उम्मीद करेंगे कि चूंकि दूसरा एमएसई पूरी तरह से यादृच्छिक रूप से एक चर का उपयोग करके बनाया गया था, MSEcol1MSEmod से अधिक होगा (एमएसई जितना अधिक होगा)। इसलिए, जब हम दो MSEcol1 - MSEmod का अंतर लेते हैं तो हम आम तौर पर सकारात्मक संख्या की अपेक्षा करते हैं। आपके मामले में एक ऋणात्मक संख्या से पता चलता है कि यादृच्छिक चर बेहतर काम करता है, जो दिखाता है कि शायद यह चर पर्याप्त भविष्यवाणी नहीं है यानी महत्वपूर्ण नहीं है।

ध्यान रखें कि मैंने यह वर्णन आपको उच्च स्तर दिया है, वास्तव में दो एमएसई मूल्यों को स्केल किया गया है और प्रतिशत अंतर की गणना की जा रही है। लेकिन उच्च स्तर की कहानी यह है।

एल्गोरिथ्म रूप में:

  1. कंप्यूट मॉडल एमएसई
  2. मॉडल में प्रत्येक चर के लिए:
    • दूसरे स्थान पर रखना चर
    • की गणना नए मॉडल एमएसई चर क्रमचय
    • के अनुसार मॉडल एमएसई और नए मॉडल एमएसई
    • 0 के बीच अंतर लें
  3. परिणामों को एक सूची में
  4. % IncMSE के मान के अनुसार रैंक चर के महत्व को एकत्रित करें। जितना अधिक मूल्य बेहतर

आशा है कि यह अभी स्पष्ट है!

+0

आपके विस्तृत और स्पष्ट उत्तर के लिए बहुत अधिक LyzandeR धन्यवाद, चीयर्स, रॉन – mql4beginner

+1

रॉन की मदद करने में खुशी हुई :)। यदि आप गहराई से खोदना चाहते हैं तो आप यहां देख सकते हैं [http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)। यह ब्रेमन स्वयं (यादृच्छिक जंगलों का आविष्कारक) से है और वह समझाता है कि वे गणितीय सूत्रों के बिना सादे अंग्रेजी में कैसे काम करते हैं। यह वास्तव में कार्यान्वयन के लिए उपयोग किए गए आरएफ पैकेज का संदर्भ है। – LyzandeR

+0

धन्यवाद, मैं इसे देख लूंगा .. – mql4beginner

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