2011-09-30 7 views
7

मान लीजिए कि मेरे पास नीचे उल्लिखित डेटा है।डेटा खनन स्थिति

11:00 user1 ब्रश

11:05 पूर्वाह्न तैयारी Brakfast

11:10 पूर्वाह्न user1 user1 खाने नाश्ता

11:15 पूर्वाह्न user1 लें स्नान

11:30 पूर्वाह्न user1 कार्यालय

के लिए छोड़ दो

12 पीएम उपयोगकर्ता 2 ब्रश

1 14:05 तैयारी Brakfast

12:10 PM पर user2 user2 नाश्ता खाने

12:15 PM पर user2 लें स्नान

12:30 PM पर user2 कार्यालय

11:00 user3 लें स्नान

11 के लिए छोड़ दो : 05AM उपयोगकर्ता 3 प्री ब्रेकफास्ट

11:10 पूर्वाह्न उपयोगकर्ता 3 ब्रश

,210

11:15 पूर्वाह्न user3 खाने नाश्ता

कार्यालय के लिए

11:30 पूर्वाह्न user3 छोड़ दो

12:00 user4 लें स्नान

12:05 user4 तैयारी Brakfast

12:10 PM प्रधानमंत्री user4 ब्रश

12:15 अपराह्न उपयोगकर्ता 4 नाश्ता

12:30 अपराह्न उपयोगकर्ता 4 कार्यालय के लिए छोड़ें

यह डेटा मुझे विभिन्न लोगों के दैनिक दिनचर्या के बारे में बताता है। इस डेटा से ऐसा लगता है कि उपयोगकर्ता 1 और उपयोगकर्ता 2 समान व्यवहार करते हैं (हालांकि समय में कोई अंतर होता है, वे गतिविधि करते हैं लेकिन वे एक ही अनुक्रम का पालन कर रहे हैं)। इसी कारण से, उपयोगकर्ता 3 और उपयोगकर्ता 4 समान व्यवहार करते हैं। अब मुझे ऐसे उपयोगकर्ताओं को विभिन्न समूहों में समूहित करना होगा। इस उदाहरण में, समूह 1- उपयोगकर्ता 1 और यूएसर 2 ... उपयोगकर्ता 3 और उपयोगकर्ता 4

सहित समूह 2 के बाद मुझे इस तरह की स्थिति से कैसे संपर्क करना चाहिए। मैं डेटा खनन सीखने की कोशिश कर रहा हूं और यह एक उदाहरण है जिसे मैंने डेटा खनन समस्या के रूप में सोचा था। मैं समाधान के लिए एक दृष्टिकोण खोजने की कोशिश कर रहा हूं, लेकिन मैं एक के बारे में नहीं सोच सकता। मेरा मानना ​​है कि इस डेटा में इसका पैटर्न है। लेकिन मैं उस दृष्टिकोण के बारे में सोचने में सक्षम नहीं हूं जो इसे प्रकट कर सकता है। इसके अलावा, मुझे इस डेटा को मेरे पास मौजूद डेटासेट पर मैप करना है, जो कि बहुत बड़ा है लेकिन इसके समान है :) डेटा एक समय में घटनाओं की घटनाओं के बारे में बताता है। और मैं घटनाओं के समान अनुक्रम का प्रतिनिधित्व करने वाले समूह ढूंढना चाहता हूं।

किसी भी पॉइंटर्स की सराहना की जाएगी।

उत्तर

2

यह खनन, और अधिक स्पष्ट Apriori एल्गोरिथ्म जोड़ के शीर्ष पर क्लस्टरिंग तरह दिखता है।कुछ इस तरह:

  1. मेरा क्रियाओं के बीच सभी संभव संघों, यानी दृश्यों बुश -> तैयारी नाश्ता, तैयारी नाश्ता -> खाओ नाश्ता, ..., बुश -> तैयारी नाश्ता -> खाओ नाश्ता, आदि हर जोड़ी , तिगुना, चौगुनी, आदि आप अपने डेटा में पा सकते हैं।
  2. प्रत्येक ऐसे अनुक्रम से अलग विशेषता बनाएं। बेहतर प्रदर्शन के लिए जोड़ी विशेषताओं के लिए 2 का बढ़ावा, 3 तिहाई के लिए और इसी तरह के लिए जोड़ें।
  3. इस पल में आपके पास इसी बूस्ट वेक्टर के साथ एक विशेषता वेक्टर होना चाहिए। आप प्रत्येक उपयोगकर्ता के लिए फीचर वेक्टर की गणना कर सकते हैं: वेक्टर में प्रत्येक स्थिति पर 1 * बूस्ट सेट करें यदि यह अनुक्रम उपयोगकर्ता क्रियाओं में मौजूद है और 0 अन्यथा)। आपको प्रत्येक उपयोगकर्ता का वेक्टर प्रतिनिधित्व मिलेगा।
  4. इस वैक्टर पर क्लस्टरिंग एल्गोरिदम का उपयोग किया जाता है जो आपकी आवश्यकताओं को बेहतर बनाता है। प्रत्येक मिली क्लास वह समूह है जिसका आप उपयोग करते हैं।

उदाहरण:

के पत्र के रूप में सभी कार्यों को चिह्नित करते हैं:

एक - ब्रश
ख - तैयारी नाश्ता
ग - पूर्वी नाश्ता
घ - लो स्नान
..

आपकी विशेषताएँ तरह दिखेगा

A1: a-> ख
A2: a-> ग
a3: a-> घ
...
A10: बी> एक
A11: बी> ग
A12: बी> घ
...
A30: a-> बी> ग> घ
A31:
a-> बी> डी> ग ...

उपयोगकर्ता सुविधा वैक्टर इस मामले में हो जाएगा:

attributes = a1, a2, a3, a4, ..., a10, a11, a12, ..., a30, a31, ... 
user1  = 1, 0, 0, 0, ..., 0, 1, 0, ..., 4, 0, ... 
user2  = 1, 0, 0, 0, ..., 0, 1, 0, ..., 4, 0, ... 
user3  = 0, 0, 0, 0, ..., 0, 0, 0, ..., 0, 0, ... 

2 उपयोगकर्ताओं कुछ दूरी को मापने की जरूरत है की तुलना करने के। सबसे सरल एक cosine distance है, जो कि 2 फीचर वैक्टरों के बीच कोसाइन का मूल्य है। यदि 2 उपयोगकर्ताओं के पास समान क्रियाएं हैं, तो उनकी समानता 1 के बराबर होगी। यदि उनके पास कुछ भी समान नहीं है - उनकी समानता 0.

उपयोगकर्ताओं के समूह बनाने के लिए दूरी माप उपयोग क्लस्टरिंग एल्गोरिदम (कहें, k-means) के साथ।

+0

धन्यवाद .. मुझे लगता है कि मैंने जो समझाया है उसे मिला है। जिस तरह से आपने समझाया है, वैसे ही क्लस्टरिंग करना एक अच्छा विचार होना चाहिए। मुझे इसपर काम करना होगा। आपकी मदद के लिए बहुत बहुत धन्यवाद :) – user722856

0

अन्य उत्तर में प्रस्तावित अपरीरी जैसे आइटमसेट खनन एल्गोरिदम का उपयोग करना सबसे अच्छा समाधान नहीं है क्योंकि अप्रियरी समय या अनुक्रमिक क्रम पर विचार नहीं करता है। इस प्रकार, इसे ऑर्डर करने पर विचार करने के लिए अतिरिक्त प्री-प्रोसेसिंग चरण की आवश्यकता होती है।

एक बेहतर समाधान अनुक्रमिक पैटर्न खनन एल्गोरिदम का उपयोग करना है जैसे प्रीफिक्सस्पैन, स्पेड, या सीएम-स्पीड सीधे। अनुक्रमिक पैटर्न खनन एल्गोरिदम सीधे उन अनुक्रमों को ढूंढ पाएगा जो अक्सर अनुक्रमों के एक सेट में दिखाई देते हैं।

फिर भी आप अनुक्रमिक पैटर्न पर क्लस्टरिंग लागू कर सकते हैं!

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