प्रत्येक पत्ते में रैखिक प्रतिगमन मॉडल के साथ प्रतिगमन ट्री एल्गोरिदम


14

लघु संस्करण: मैं एक आर पैकेज की तलाश कर रहा हूं जो निर्णय पेड़ों का निर्माण कर सकता है जबकि निर्णय पेड़ में प्रत्येक पत्ती एक पूर्ण रैखिक प्रतिगमन मॉडल है। AFAIK, पुस्तकालय rpartनिर्णय वृक्ष बनाता है जहाँ प्रत्येक पत्ती में आश्रित चर स्थिर होता है। क्या एक और पुस्तकालय (या एक rpartसेटिंग मुझे पता नहीं है) जो ऐसे पेड़ों का निर्माण कर सकता है?

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

एल्गोरिथ्म कुछ इस तरह है:

  1. पूर्ण डेटासेट के साथ शुरू करें, जो कि पेड़ का मूल नोड है। इस नोड को चुनें और इसे कहें ।N
  2. में डेटा पर एक रैखिक प्रतिगमन मॉडल बनाएं ।N
  3. तो के एन के रेखीय मॉडल कुछ सीमा से अधिक है θ आर 2 , तो हम पूरे कर चुके हैं एन , इसलिए निशान एन एक पत्ता के रूप में और चरण 5 के लिए कूद।R2NθR2NN
  4. यादृच्छिक निर्णय लेने का प्रयास करें , और जो सब रीनोड्स में सर्वश्रेष्ठ R 2 देता है उसे चुनें: nR2
    • एक यादृच्छिक स्वतंत्र चर उठाओ , साथ ही एक यादृच्छिक सीमा θ मैंviθi
    • निर्णय के डेटा सेट विभाजन एन दो नए नोड्स, में एन और ~ एनviθiNN^N~
    • दोनों पर रैखिक प्रतिगमन मॉडल बनाएं एन और ~ एन , और उनके गणना आर 2 (कॉल उन्हें r और ~ r )।N^N~R2r^r~
    • उन सभी से tuples ( वी मैं , θ मैं , आर , ~ r ) , अधिक से अधिक के साथ एक को चुनें मीटर मैं n ( आर , ~ r ) । इस पेड़ में एक नया निर्णय पैदावार, और एन के दो नए subnodes है एन और ~ एनn(vi,θi,r^,r~)min(r^,r~)NN^N~
  5. हमने प्रोसेस किया है । एक नया नोड एन चुनें जिसे अभी तक संसाधित नहीं किया गया है और चरण 2 पर वापस जाएं। यदि सभी नोड्स संसाधित किए गए हैं, तो एल्गोरिथ्म समाप्त हो जाता है।NN

यह पुनरावर्ती एक निर्णय ट्री का निर्माण करेगा जो डेटा को छोटे भागों में विभाजित करता है, और उन भागों में से प्रत्येक पर एक रैखिक मॉडल की गणना करता है।

चरण 3 बाहर निकलने की स्थिति है, जो एल्गोरिथ्म को ओवरफिटिंग से बचाता है। बेशक, अन्य संभावित निकास स्थितियां हैं:

  • बाहर निकलें, तो पेड़ में की गहराई से ऊपर है θ पी टी Nθdepth
  • बाहर निकलें, तो में डेटा सेट से छोटी है θ एक टी एक रों टीNθdataset

क्या आर पैकेज में ऐसा एल्गोरिथ्म है?


4
पार्टी पैकेज पर एक नज़र डालें और देखें कि क्या यह आपकी आवश्यकताओं के अनुरूप है। यह पेड़ों के नोड्स IIRC में कई प्रकार के मॉडल को संभाल सकता है।
मोनिका को बहाल करें - जी। सिम्पसन

जवाबों:


11

हालांकि वे आपके एल्गोरिथ्म से अलग काम करते हैं, मेरा मानना ​​है कि आप भीड़ () और एफटीट्री को दिलचस्प पाएंगे। ज़ाइलिस की भीड़ के लिए देखें http://cran.r-project.org/web/packages/party/vignettes/MOB.pdf FTtree के लिए, गामा के कार्यात्मक पेड़ एक कार्यान्वयन Weka में उपलब्ध है और इस प्रकार RWDa। देखें http://cran.r-project.org/web/packages/RWeka/index.html जानकारी के लिए।


1
भीड़ के लिए +1, जो पुनरावर्ती विभाजन ढांचे में लगभग किसी भी मॉडल को प्लग करने की अनुमति देता है
एटोव

8

RWeka पैकेज कई प्रतिगमन तरीके प्रदान करता है। उनमें से, आप एम 5 पी (एम 5 प्राइम) पा सकते हैं, जो कि लीफ़्स में रैखिक समीकरणों के साथ पेड़ आधारित प्रतिगमन मॉडल है। M5 विधि के बारे में अधिक जानकारी के लिए, प्रकाशन देखें ।

एक उदाहरण कोड होगा:

library(RWeka)
M5_model = M5P (Dep_var ~ ., data = train, control = Weka_control(N=F, M=10))
train_predicted = predict(M5_model, train)
test_predicted = predict(M5_model, test)

यदि आप M5 विधि के साथ बैगिंग पहनावा का उपयोग करना चाहते हैं, तो कुछ इस तरह की कोशिश करें:

M5_bag = Bagging(Dep_var ~ ., data = train, control = Weka_control(P=100, I = 100, W = list("weka.classifiers.trees.M5P", M = 4)))

M5P मॉडल के लिए नियंत्रण विकल्प देखने के लिए, प्रयास करें:

WOW(M5P)

यदि आप M5 विधि का अनुकूलन करना चाहते हैं, तो caretपैकेज में इसके लिए एक समाधान है :

library(caret)
Optimization = train (Dep_var ~ .,data = train, method = 'M5')

7

मुझे लगता है कि यह आपके प्रश्न के संक्षिप्त संस्करण का उत्तर देता है:

क्यूबिस्ट पैकेज फिट शासन-आधारित मॉडल टर्मिनल पत्तियों में रेखीय प्रतीपगमन मॉडल, उदाहरण के आधार पर सुधार और बढ़ाने के साथ (पेड़ के समान)।

से Cran कार्य विचार: मशीन लर्निंग


क्या आप जानते हैं कि यह (Quinlan के M5 के समान) है?
मोमो

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