जाहिरा तौर पर, पदानुक्रमिक क्लस्टरिंग में, जिसमें दूरी की माप यूक्लिडियन दूरी है, कोवर्ट को चलाने से उच्चतम विचरण के साथ कोवरिएट को रोकने के लिए डेटा को पहले सामान्यीकृत या मानकीकृत किया जाना चाहिए। ऐसा क्यों है? क्या यह तथ्य वांछनीय नहीं है?
जाहिरा तौर पर, पदानुक्रमिक क्लस्टरिंग में, जिसमें दूरी की माप यूक्लिडियन दूरी है, कोवर्ट को चलाने से उच्चतम विचरण के साथ कोवरिएट को रोकने के लिए डेटा को पहले सामान्यीकृत या मानकीकृत किया जाना चाहिए। ऐसा क्यों है? क्या यह तथ्य वांछनीय नहीं है?
जवाबों:
यह आपके डेटा पर निर्भर करता है। और वास्तव में इसका पदानुक्रमित क्लस्टरिंग से कोई लेना-देना नहीं है, लेकिन दूरी स्वयं कार्यों के साथ।
समस्या तब है जब आपके पास मिश्रित विशेषताएँ हैं ।
कहते हैं कि आपके पास व्यक्तियों पर डेटा है। वजन ग्राम और जूते के आकार में। जूते का आकार बहुत कम होता है, जबकि शरीर द्रव्यमान (ग्राम में) के अंतर बहुत अधिक होते हैं। आप दर्जनों उदाहरणों के साथ आ सकते हैं। आप सिर्फ 1 ग्राम और 1 जूते के आकार के अंतर की तुलना नहीं कर सकते। वास्तव में, इस उदाहरण में आप ऐसी चीज़ की गणना करते हैं जिसमें की भौतिक इकाई होगी !
आमतौर पर इन मामलों में, यूक्लिडियन दूरी का कोई मतलब नहीं है। लेकिन यह अभी भी काम कर सकता है, कई स्थितियों में यदि आप अपना डेटा सामान्य करते हैं। यहां तक कि अगर यह वास्तव में समझ में नहीं आता है, तो यह उन स्थितियों के लिए एक अच्छा हेयुरिस्टिक है जहां आपके पास "सिद्ध सही" दूरी फ़ंक्शन नहीं है, जैसे मानव-स्तरीय भौतिक दुनिया में यूक्लिडियन दूरी।
यदि आप अपने डेटा को मानकीकृत नहीं करते हैं, तो बड़ी मूल्यवान इकाइयों में मापा गया चर गणना की गई असमानता पर हावी हो जाएगा और छोटे मूल्यवान इकाइयों में मापा जाने वाले चर बहुत कम योगदान देंगे।
हम इसके माध्यम से R में कल्पना कर सकते हैं:
set.seed(42)
dat <- data.frame(var1 = rnorm(100, mean = 100000),
var2 = runif(100),
var3 = runif(100))
dist1 <- dist(dat)
dist2 <- dist(dat[,1, drop = FALSE])
dist1
सभी तीन चर के आधार पर 100 अवलोकनों के dist2
लिए यूक्लिडियन दूरी शामिल है, जबकि var1
अकेले यूक्लिडियन दूरी शामिल है।
> summary(dist1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.07351 0.77840 1.15200 1.36200 1.77000 5.30200
> summary(dist2)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000072 0.470000 0.963600 1.169000 1.663000 5.280000
ध्यान दें कि कैसे समान दूरी के वितरण, से थोड़ा योगदान संकेत कर रहे हैं var2
और var3
, और वास्तविक दूरी बहुत समान हैं:
> head(dist1)
[1] 1.9707186 1.0936524 0.8745579 1.2724471 1.6054603 0.1870085
> head(dist2)
[1] 1.9356566 1.0078300 0.7380958 0.9666901 1.4770830 0.1405636
यदि हम डेटा को मानकीकृत करते हैं
dist3 <- dist(scale(dat))
dist4 <- dist(scale(dat[,1, drop = FALSE]))
तब केवल var1
और केवल तीन चर पर आधारित दूरियों में एक बड़ा परिवर्तन होता है :
> summary(dist3)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.09761 1.62400 2.25000 2.28200 2.93600 5.33100
> summary(dist4)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000069 0.451400 0.925400 1.123000 1.597000 5.070000
> head(dist3)
[1] 2.2636288 1.7272588 1.7791074 3.0129750 2.5821981 0.4434073
> head(dist4)
[1] 1.8587830 0.9678046 0.7087827 0.9282985 1.4184214 0.1349811
जैसा कि पदानुक्रमित क्लस्टरिंग इन दूरियों का उपयोग करता है, चाहे वह मानकीकृत करने के लिए वांछनीय है या नहीं आपके पास किस प्रकार के डेटा / चर पर निर्भर है और क्या आप चाहते हैं कि बड़ी चीजें दूरी पर हावी हों और इसलिए क्लस्टरिंग के गठन पर हावी हो। इसका उत्तर डोमेन विशिष्ट और डेटा-सेट विशिष्ट है।
Anony-Mousse ने एक उत्कृष्ट उत्तर दिया । मैं सिर्फ यह जोड़ना चाहूंगा कि दूरी मीट्रिक जो समझ में आता है कि बहुभिन्नरूपी वितरण के आकार पर निर्भर करेगा। बहुभिन्नरूपी गौसियन के लिए, महालनोबिस दूरी उपयुक्त उपाय है।