नियमों के एक सेट में एक वर्गीकरण पेड़ (रपेर में) का आयोजन?


11

क्या एक तरीका है कि एक बार (आर में) rpart का उपयोग करके एक जटिल वर्गीकरण वृक्ष का निर्माण किया जाता है, प्रत्येक वर्ग के लिए उत्पादित निर्णय नियमों को व्यवस्थित करने के लिए? इसलिए एक विशाल वृक्ष प्राप्त करने के बजाय, हम प्रत्येक वर्ग के लिए नियमों का एक समूह प्राप्त करते हैं?

(यदि हां, तो कैसे?)

यहां उदाहरणों को दिखाने के लिए एक सरल कोड उदाहरण दिया गया है:

fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis)

धन्यवाद।

जवाबों:


9

इस तरह की कार्यक्षमता (या एक करीबी) खड़खड़ पैकेज में उपलब्ध लगती है , जैसा कि RJournal 1/2 2009 (पृष्ठ 50) में वर्णित है , हालांकि मैंने इसे केवल कमांड-लाइन से जांचा था।

आपके उदाहरण के लिए, यह निम्नलिखित आउटपुट देता है:

 Rule number: 3 [Kyphosis=present cover=19 (23%) prob=0.58]
   Start< 8.5

 Rule number: 23 [Kyphosis=present cover=7 (9%) prob=0.57]
   Start>=8.5
   Start< 14.5
   Age>=55
   Age< 111

 Rule number: 22 [Kyphosis=absent cover=14 (17%) prob=0.14]
   Start>=8.5
   Start< 14.5
   Age>=55
   Age>=111

 Rule number: 10 [Kyphosis=absent cover=12 (15%) prob=0.00]
   Start>=8.5
   Start< 14.5
   Age< 55

 Rule number: 4 [Kyphosis=absent cover=29 (36%) prob=0.00]
   Start>=8.5
   Start>=14.5

इस उत्पादन, मैं स्रोत प्राप्त करने के लिए rattle/R/rpart.Rकरने के लिए दो कॉल हटा दिया करने के बाद मेरी कार्यक्षेत्र में स्रोत फ़ाइल (स्रोत पैकेज से), Rtxt()में asRules.rpart()समारोह (आप भी साथ बदलें कर सकते हैं print)। फिर, मैं सिर्फ टाइप करता हूं

> asRules(fit)

क्या गैर-टर्मिनल पत्तियों के लिए भी नियम प्रिंट करना संभव है?
user1700890

3

Rpart.plot पैकेज संस्करण 3.0 (जुलाई 2018) एक समारोह है rpart.rulesएक पेड़ के लिए नियमों का एक सेट पैदा करने के लिए। उदाहरण के लिए

library(rpart.plot)
fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis)
rpart.rules(fit)

देता है

Kyphosis
    0.00 when Start >=      15
    0.00 when Start is 9 to 15 & Age <  55
    0.14 when Start is 9 to 15 & Age >=       111
    0.57 when Start is 9 to 15 & Age is 55 to 111
    0.58 when Start <  9

अधिक उदाहरणों के लिए rpart.plot विगनेट का अध्याय 4 देखें ।


बहुत बढ़िया संदर्भ, यह नियम के आगे पत्ती संख्या के लिए भी बहुत उपयोगी होगा
user1700890

1
rpart.rules(fit, nn=TRUE)नोड संख्या (उर्फ लीफ नंबर) प्राप्त करने के लिए उपयोग करें ।
स्टीफन मिलबोरो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.