मूल समस्या
यहाँ मेरी मूल समस्या है: मैं एक डेटासेट को क्लस्टर करने की कोशिश कर रहा हूं जिसमें कुछ बहुत ही तिरछे वेरिएबल हैं, जो मायने रखते हैं। चर में कई शून्य होते हैं और इसलिए मेरी क्लस्टरिंग प्रक्रिया के लिए बहुत जानकारीपूर्ण नहीं हैं - जो कि k- साधन एल्गोरिथ्म होने की संभावना है।
ठीक है, आप कहते हैं, बस वर्गमूल, बॉक्स कॉक्स या लघुगणक का उपयोग करके चर को रूपांतरित करें। लेकिन चूंकि मेरे चर श्रेणीबद्ध चर पर आधारित हैं, इसलिए मुझे डर है कि मैं एक चर (श्रेणीगत चर के एक मूल्य के आधार पर) को संभालकर एक पूर्वाग्रह का परिचय दे सकता हूं, जबकि दूसरों को छोड़कर (श्रेणीगत चर के अन्य मूल्यों के आधार पर) वे जिस तरह से हैं ।
आइए कुछ और विस्तार में जाएं।
डेटासेट
मेरा डेटासेट आइटमों की खरीद का प्रतिनिधित्व करता है। आइटम की अलग-अलग श्रेणियां हैं, उदाहरण के लिए रंग: नीला, लाल और हरा। फिर ग्राहकों द्वारा खरीदारी को एक साथ समूहीकृत किया जाता है। इनमें से प्रत्येक ग्राहक को मेरे डेटासेट की एक पंक्ति द्वारा दर्शाया गया है, इसलिए मुझे किसी भी तरह ग्राहकों पर खरीदारी करनी है।
जिस तरह से मैं करता हूं वह खरीद की संख्या की गणना करके है, जहां आइटम एक निश्चित रंग है। तो एक भी चर के बजाय color
, मैं तीन चर के साथ खत्म count_red
, count_blue
, और count_green
।
यहाँ उदाहरण के लिए एक उदाहरण है:
-----------------------------------------------------------
customer | count_red | count_blue | count_green |
-----------------------------------------------------------
c0 | 12 | 5 | 0 |
-----------------------------------------------------------
c1 | 3 | 4 | 0 |
-----------------------------------------------------------
c2 | 2 | 21 | 0 |
-----------------------------------------------------------
c3 | 4 | 8 | 1 |
-----------------------------------------------------------
वास्तव में, मैं अंत में पूर्ण गणना का उपयोग नहीं करता हूं, मैं अनुपात (प्रति ग्राहक सभी खरीदी गई वस्तुओं के हरे रंग की वस्तुओं का अंश) का उपयोग करता हूं।
-----------------------------------------------------------
customer | count_red | count_blue | count_green |
-----------------------------------------------------------
c0 | 0.71 | 0.29 | 0.00 |
-----------------------------------------------------------
c1 | 0.43 | 0.57 | 0.00 |
-----------------------------------------------------------
c2 | 0.09 | 0.91 | 0.00 |
-----------------------------------------------------------
c3 | 0.31 | 0.62 | 0.08 |
-----------------------------------------------------------
परिणाम समान है: मेरे रंगों में से एक के लिए, उदाहरण के लिए हरा (कोई भी हरे रंग को पसंद नहीं करता है), मुझे एक बाएं तिरछा चर मिलता है जिसमें कई शून्य होते हैं। नतीजतन, k- साधन इस चर के लिए एक अच्छा विभाजन खोजने में विफल रहता है।
दूसरी ओर, अगर मैं अपने चर (घटाव का मतलब, मानक विचलन से विभाजित) का मानकीकरण करता हूं, तो हरे रंग का चर अपने छोटे से विचरण के कारण "उड़ता है" और अन्य चर की तुलना में बहुत बड़ी रेंज से मान लेता है, जिससे यह अधिक दिखता है वास्तव में यह है की तुलना में k- साधन के लिए महत्वपूर्ण है।
अगला विचार स्के (r) ईव्ड ग्रीन वैरिएबल को बदलना है।
तिरछी चर को बदलना
अगर मैं वर्गमूल को लागू करके हरे रंग के चर को परिवर्तित करता हूं तो यह थोड़ा कम तिरछा दिखता है। (यहां भ्रम को सुनिश्चित करने के लिए हरे रंग के चर को लाल और हरे रंग में चित्रित किया गया है।)
लाल: मूल चर; नीला: वर्गमूल द्वारा रूपांतरित।
मान लें कि मैं इस परिवर्तन के परिणाम से संतुष्ट हूं (जो मैं नहीं हूं, क्योंकि शून्य अभी भी वितरण को दृढ़ता से तिरछा करता है)। क्या मुझे अब लाल और नीले रंग के चरों को भी मापना चाहिए, हालांकि उनके वितरण ठीक दिखते हैं?
जमीनी स्तर
दूसरे शब्दों में, क्या मैं एक तरह से रंग हरे को संभालकर क्लस्टरिंग परिणामों को विकृत करता हूं, लेकिन लाल और नीले रंग को बिल्कुल भी नहीं संभाल रहा हूं? अंत में, सभी तीन चर एक साथ होते हैं, तो क्या उन्हें उसी तरह से नहीं संभाला जाना चाहिए?
संपादित करें
स्पष्ट करने के लिए: मुझे पता है कि k- साधन संभवतः गणना-आधारित डेटा के लिए जाने का तरीका नहीं है । मेरा प्रश्न वास्तव में आश्रित चर के उपचार के बारे में है। सही विधि चुनना एक अलग मामला है।
मेरे चर में निहित बाधा वह है
count_red(i) + count_blue(i) + count_green(i) = n(i)
, n(i)
ग्राहक की खरीद की कुल संख्या कहां है i
।
(या, समकक्ष, count_red(i) + count_blue(i) + count_green(i) = 1
जब रिश्तेदार मायने रखता है।)
यदि मैं अपने चरों को अलग-अलग रूपांतरित करता हूं, तो यह बाधा में तीन शब्दों को अलग-अलग वजन देने से मेल खाती है। यदि मेरा लक्ष्य ग्राहकों के अलग-अलग समूहों को अलग-अलग करना है, तो क्या मुझे इस बाधा का उल्लंघन करने की परवाह है? या "अंत का मतलब उचित है"?
count_red
, count_blue
और count_green
डेटा मायने रखता है। सही? पंक्तियाँ फिर क्या हैं - आइटम? और आप आइटम क्लस्टर करने जा रहे हैं?