क्या क्लस्टरिंग से पहले डेटा को स्केल करना महत्वपूर्ण है?


44

मुझे यह ट्यूटोरियल मिला , जो बताता है कि आपको क्लस्टरिंग से पहले सुविधाओं पर स्केल फ़ंक्शन चलाना चाहिए (मेरा मानना ​​है कि यह डेटा को z- स्कोर में परिवर्तित करता है)।

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

जवाबों:


59

मुद्दा यह है कि मामलों के बीच दूरी की एक अच्छी माप का प्रतिनिधित्व करता है।

यदि आपके पास दो विशेषताएं हैं, एक जहां मामलों के बीच अंतर बड़ा है और दूसरा छोटा है, तो क्या आप पूर्व को केवल दूरी के चालक के रूप में तैयार करने के लिए तैयार हैं?

उदाहरण के लिए यदि आप मीटर में किलोग्राम और ऊंचाई पर अपने वजन पर लोगों को गुदगुदाते हैं, तो क्या 1 किलो का अंतर ऊंचाई में 1 मीटर के अंतर के रूप में महत्वपूर्ण है? क्या यह मायने रखता है कि आप सेंटीमीटर में किलोग्राम और ऊँचाई पर भार पर अलग-अलग क्लस्टरिंग प्राप्त करेंगे? यदि आपके उत्तर क्रमशः "नहीं" और "हां" हैं, तो आपको संभवतः स्केल करना चाहिए।

दूसरी ओर, यदि आप पूर्व / पश्चिम और दूर / उत्तर / दक्षिण की दूरी के आधार पर कनाडाई शहरों का क्लस्टरिंग कर रहे थे, हालांकि आमतौर पर पूर्व / पश्चिम में बहुत बड़े अंतर होंगे, तो आप बस किलोमीटर या मील में बिना दूरी के दूरी का उपयोग करने के लिए खुश हो सकते हैं। (हालांकि आप पृथ्वी की वक्रता के लिए देशांतर और अक्षांश की डिग्री समायोजित करना चाहते हैं)।


33

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

दोनों आयामों में डेटा क्लस्टर के साथ एक ही लागू होगा, लेकिन सामान्यीकरण कम मदद करेगा। उस स्थिति में, यह एक पीसीए करने में मदद कर सकता है, फिर सामान्य कर सकता है, लेकिन यह केवल तभी मदद करेगा जब क्लस्टर रैखिक रूप से अलग होने योग्य हों, और पीसीए आयामों में ओवरलैप न हों। (यह उदाहरण केवल क्लस्टर गणना के कारण स्पष्ट रूप से काम करता है)

सिंथेटिक क्लस्टर्ड डेटा, सामान्यीकृत और गैर-सामान्यीकृत दोनों संस्करणों पर k-mean क्लस्टरिंग के साथ

import numpy as np
import seaborn
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

rnorm = np.random.randn

x = rnorm(1000) * 10  
y = np.concatenate([rnorm(500), rnorm(500) + 5])

fig, axes = plt.subplots(3, 1)

axes[0].scatter(x, y)
axes[0].set_title('Data (note different axes scales)')

km = KMeans(2)

clusters = km.fit_predict(np.array([x, y]).T)

axes[1].scatter(x, y, c=clusters, cmap='bwr')
axes[1].set_title('non-normalised K-means')

clusters = km.fit_predict(np.array([x / 10, y]).T)

axes[2].scatter(x, y, c=clusters, cmap='bwr')
axes[2].set_title('Normalised K-means')

17

यह आपके डेटा पर निर्भर करता है

यदि आपके पास एक अच्छी तरह से परिभाषित अर्थ के साथ विशेषताएँ हैं। कहते हैं, अक्षांश और देशांतर, फिर आपको अपने डेटा को स्केल नहीं करना चाहिए, क्योंकि इससे विकृति पैदा होगी। (के-साधन एक बुरा विकल्प हो सकता है, भी - आपको कुछ ऐसा चाहिए जो स्वाभाविक रूप से लैट / लोन को संभाल सके)

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

यदि आपके पास द्विआधारी मूल्य हैं, तो असतत विशेषताओं या श्रेणीबद्ध विशेषताएं हैं, k- साधनों से दूर रहें। K- साधनों को साधनों की गणना करने की आवश्यकता है , और इस तरह के डेटा पर माध्य मान सार्थक नहीं है।


5

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

विचार यह है कि यदि डेटा के विभिन्न घटकों (सुविधाओं) में अलग-अलग पैमाने होते हैं, तो डेरिवेटिव उच्च विचरण के साथ दिशाओं के साथ संरेखित करते हैं, जिससे खराब / धीमा अभिसरण होता है।


4

मानकीकरण डेटा प्रीप्रोसेसिंग का एक महत्वपूर्ण चरण है।

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

https://pdfs.semanticscholar.org/1d35/2dd5f030589ecfe8910ab1cc0dd320bf600d.pdf

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