डाटा माइनिंग - नियम आधारित वर्गीकरण

IF-THEN रूल्स

नियम-आधारित क्लासिफायर वर्गीकरण के लिए IF-THEN नियमों के एक सेट का उपयोग करता है। हम निम्नलिखित में से एक नियम व्यक्त कर सकते हैं -

यदि यह निष्कर्ष निकला हो

आइए एक नियम R1 पर विचार करें,

R1: IF age = youth AND student = yes 
   THEN buy_computer = yes

Points to remember −

  • नियम का IF भाग कहा जाता है rule antecedent या precondition

  • नियम के भाग को कहा जाता है rule consequent

  • पूर्ववर्ती भाग में स्थिति एक या अधिक विशेषता परीक्षणों से युक्त होती है और ये परीक्षण तार्किक रूप से Anded होते हैं।

  • परिणामी भाग में कक्षा की भविष्यवाणी होती है।

Note - हम नियम R1 को निम्नानुसार भी लिख सकते हैं -

R1: (age = youth) ^ (student = yes))(buys computer = yes)

यदि किसी दिए गए टपल के लिए स्थिति सही है, तो पूर्ववर्ती संतुष्ट है।

नियम निकालना

यहां हम सीखेंगे कि एक निर्णय ट्री से IF-THEN नियमों को हटाकर नियम-आधारित क्लासिफायर बनाने का तरीका।

Points to remember −

निर्णय पेड़ से एक नियम निकालने के लिए -

  • रूट से लीफ नोड तक प्रत्येक पथ के लिए एक नियम बनाया गया है।

  • एक नियम पूर्वक बनाने के लिए, प्रत्येक विभाजन मानदंड तार्किक रूप से एंडेड है।

  • पत्ता नोड वर्ग भविष्यवाणी करता है, जिसके परिणामस्वरूप नियम होता है।

अनुक्रमिक आवरण एल्गोरिथ्म का उपयोग करते हुए नियम प्रेरण

अनुक्रमिक कवरिंग एल्गोरिदम का उपयोग IF-THEN नियमों को निकालने के लिए किया जा सकता है जो प्रशिक्षण डेटा बनाते हैं। हमें पहले एक निर्णय वृक्ष उत्पन्न करने की आवश्यकता नहीं है। इस एल्गोरिथ्म में, किसी दिए गए वर्ग के लिए प्रत्येक नियम उस वर्ग के कई ट्यूपल्स को कवर करता है।

कुछ अनुक्रमिक कवरिंग एल्गोरिदम AQ, CN2 और RIPPER हैं। सामान्य रणनीति के अनुसार नियमों को एक बार में सीखा जाता है। हर बार नियम सीखे जाने पर, नियम द्वारा कवर किया गया एक ट्यूपल हटा दिया जाता है और बाकी ट्यूपल्स के लिए प्रक्रिया जारी रहती है। ऐसा इसलिए है क्योंकि निर्णय वृक्ष में प्रत्येक पत्ती का मार्ग एक नियम से मेल खाता है।

Note - डिसीजन ट्री इंडक्शन को एक साथ नियमों का एक सेट सीखने के रूप में माना जा सकता है।

निम्नलिखित अनुक्रमिक सीखने का एल्गोरिथ्म है जहां एक समय में एक वर्ग के लिए नियम सीखे जाते हैं। जब एक वर्ग CE से एक नियम सीखते हैं, तो हम चाहते हैं कि नियम केवल कक्षा C से सभी tuples को कवर करे और कोई भी tuple किसी अन्य वर्ग के रूप में न हो।

Algorithm: Sequential Covering

Input: 
D, a data set class-labeled tuples,
Att_vals, the set of all attributes and their possible values.

Output:  A Set of IF-THEN rules.
Method:
Rule_set={ }; // initial set of rules learned is empty

for each class c do
   
   repeat
      Rule = Learn_One_Rule(D, Att_valls, c);
      remove tuples covered by Rule form D;
   until termination condition;
   
   Rule_set=Rule_set+Rule; // add a new rule to rule-set
end for
return Rule_Set;

नियम प्रूनिंग

नियम का कारण है निम्नलिखित कारण से -

  • गुणवत्ता का मूल्यांकन प्रशिक्षण डेटा के मूल सेट पर किया जाता है। नियम प्रशिक्षण डेटा पर अच्छा प्रदर्शन कर सकता है लेकिन बाद के डेटा पर कम अच्छा है। इसलिए नियम प्रूनिंग की आवश्यकता है।

  • कंजंक्ट को हटाकर नियम का पालन किया जाता है। नियम आर छंटा हुआ है, यदि आर के छंटे हुए संस्करण में टुपल्स के स्वतंत्र सेट पर मूल्यांकन किए गए से अधिक गुणवत्ता है।

एफओआईएल नियम प्रूनिंग के लिए सरल और प्रभावी तरीका है। किसी नियम R के लिए,

FOIL_Prune = pos - negative / pos + negative

जहां सकारात्मक और नकारात्मक क्रमशः आर द्वारा कवर सकारात्मक tuples की संख्या है।

Note- प्रूनिंग सेट पर R की सटीकता के साथ यह मान बढ़ेगा। इसलिए, यदि आर के छंटे हुए संस्करण के लिए FOIL_Prune मान अधिक है, तो हम R को आर prune करते हैं।