क्या FPGrowth को अभी भी लगातार पैटर्न खनन में "कला की स्थिति" माना जाता है?


12

जहां तक ​​मुझे पता है कि फ्रिक्वेंट पैटर्न माइनिंग (एफपीएम) समस्या को हल करने के लिए एल्गोरिदम के विकास में सुधार की सड़क में कुछ मुख्य चौकियां हैं। सबसे पहले, अग्रि एल्गोरिथ्म 1993 में अग्रवाल एट अल द्वारा प्रस्तावित किया गया था समस्या की औपचारिकता के साथ। एल्गोरिथ्म डेटा को बनाए रखने के लिए एक जाली का उपयोग करके सेट (पावरसेट) से कुछ सेटों को स्ट्रिप-ऑफ करने में सक्षम था 2^n - 1। दृष्टिकोण का एक दोष यह था कि प्रत्येक सेट की आवृत्ति की गणना करने के लिए डेटाबेस को फिर से पढ़ने की आवश्यकता थी।

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

2000 में, हान एट अल। FPGrow नाम के एक उपसर्ग-वृक्ष डेटा संरचना के साथ, FPGrowth नाम का एक एल्गोरिथ्म प्रस्तावित । एल्गोरिथ्म महत्वपूर्ण डेटा संपीड़न प्रदान करने में सक्षम था, जबकि यह भी अनुदान कि केवल लगातार आइटम (उम्मीदवार आइटम पीढ़ी के बिना) उपज होगी। यह मुख्य रूप से प्रत्येक लेनदेन की वस्तुओं को घटते क्रम में क्रमबद्ध करके किया गया था, ताकि सबसे अधिक बार होने वाले आइटम पेड़ डेटा संरचना में कम से कम पुनरावृत्ति वाले हों। चूंकि आवृत्ति केवल पेड़ की गहराई में जाने के दौरान उतरती है, एल्गोरिथ्म गैर-लगातार आइटम को स्ट्रिप-ऑफ करने में सक्षम है ।

संपादित करें :

जहां तक ​​मुझे पता है, यह एक अत्याधुनिक एल्गोरिदम माना जा सकता है, लेकिन मैं अन्य प्रस्तावित समाधानों के बारे में जानना चाहूंगा। एफपीएम के लिए अन्य एल्गोरिदम को "अत्याधुनिक" माना जाता है? ऐसे एल्गोरिदम का अंतर्ज्ञान / मुख्य योगदान क्या है ?

क्या FPGrowth एल्गोरिथ्म को अभी भी लगातार पैटर्न खनन में "कला की स्थिति" माना जाता है? यदि नहीं, तो क्या एल्गोरिथ्म बड़े डेटासेट से लगातार आइटम को अधिक कुशलता से निकाल सकता है?


इस पोस्ट पर शोध किया गया और अच्छी तरह से प्रस्तुत किया गया। यह एक एसई नेटवर्क साइट के लिए एक खराब सवाल बनाता है, लेकिन चर्चा मंच पर शुरू करना एक अच्छा विषय होगा।
एयर

@AirThomas चेतावनी के लिए धन्यवाद। मैंने इसमें से एक उचित प्रश्न बनाकर पोस्ट को बचाने की कोशिश की।
रुबेंस

जवाबों:


9

के रूप में कला के राज्य में: अभ्यास में इस्तेमाल किया या सिद्धांत में काम किया?

APRIORI का उपयोग हर जगह किया जाता है, सिवाय नए लगातार आइटम एल्गोरिदम विकसित करने के। इसे लागू करना आसान है, और बहुत अलग डोमेन में पुन: उपयोग करना आसान है। आपको अलग-अलग गुणवत्ता के सैकड़ों APRIORI कार्यान्वयन मिलेंगे। और APRIORI को प्राप्त करना गलत है, वास्तव में।

एफपीग्रोथ लागू करने के लिए बहुत कठिन है, लेकिन बहुत अधिक दिलचस्प है। इसलिए अकादमिक दृष्टिकोण से, हर कोई FPgrowth को बेहतर बनाने की कोशिश करता है - स्वीकृत APRIORI पर आधारित काम करना अब तक बहुत कठिन होगा।

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

स्तंभों पर काम करता है Eclat; लेकिन इसे प्रत्येक कॉलम को अधिक बार पढ़ने की आवश्यकता होती है। इस काम को कम करने के लिए diffsets पर कुछ काम है। यदि आपका डेटा मुख्य मेमोरी में फिट नहीं होता है, तो Eclat शायद Apriori से अधिक पीड़ित है। पहले गहराई में जाकर, यह अप्रीरी की तुलना में बहुत पहले एक दिलचस्प परिणाम वापस करने में सक्षम होगा, और आप इन परिणामों का उपयोग मापदंडों को समायोजित करने के लिए कर सकते हैं; इसलिए आपको अच्छे पैरामीटर खोजने के लिए कम पुनरावृत्तियों की आवश्यकता है। लेकिन डिजाइन के अनुसार, यह अप्रीरी के रूप में बड़े करीने से छंटाई का फायदा नहीं उठा सकता है।

FPGrowth डेटा को ट्री में सेट करता है। यह सबसे अच्छा काम करता है जब आपके पास बहुत सारे डुप्लिकेट रिकॉर्ड होते हैं। अगर आप अपने डेटा को प्रिजर्व कर सकते हैं और डुप्लीकेट वेक्टर्स में डुप्लिकेट मर्ज कर सकते हैं तो आप शायद एप्रीओरी और एक्लैट के लिए कुछ लाभ प्राप्त कर सकते हैं। FPGrowth एक चरम स्तर पर ऐसा करता है। दोष यह है कि कार्यान्वयन बहुत कठिन है; और एक बार जब यह पेड़ स्मृति में फिट नहीं होता है, तो इसे लागू करने के लिए गड़बड़ हो जाता है।

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

इन एल्गोरिदम को कुशलता से लागू करने के तरीके पर वास्तव में भी कागजात हैं:

Apriori और Eclat के कुशल कार्यान्वयन।
क्रिश्चियन बोर्गेल्ट
कार्यशाला की लगातार आइटम सेट खनन कार्यान्वयन (एफआईएमआई 2003, मेलबर्न, एफएल, यूएसए)।

आप इस डोमेन पर इन सर्वेक्षणों को पढ़ना चाहते हैं:

  • गोएथल्स, बार्ट। "लगातार पैटर्न खनन पर सर्वेक्षण।" यूनी। हेलसिंकी (2003) की।

  • फ़रेंक बोडन, फ़्रीक्वेंट आइटमसेट माइनिंग, तकनीकी रिपोर्ट, बुडापेस्ट यूनिवर्सिटी ऑफ़ टेक्नोलॉजी एंड इकोनॉमिक, 2006, पर एक सर्वेक्षण

  • फ़्रीक्वेंट आइटम सेट माइनिंग
    क्रिस्चियन बॉर्गेल
    विली इंटरडिसिप्लिनरी रिव्यूज़ : डेटा माइनिंग एंड नॉलेज डिस्कवरी 2 (6): 437-456। 2012


2

हाल ही में आए फ्रिक्वेंट पैटर्न के अधिकांश दृष्टिकोण जो मैंने साहित्य में देखे हैं, FPGrowth के अनुकूलन पर आधारित हैं। मुझे स्वीकार करना होगा, मैंने कई वर्षों में एफपीएम में साहित्य के भीतर कई विकास नहीं देखे हैं।

यह विकिबूक FPGrowth के कई वेरिएंट्स पर प्रकाश डालता है जो कि बाहर हैं।

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