यह सच है कि के-साधन क्लस्टरिंग और पीसीए में बहुत अलग लक्ष्य दिखाई देते हैं और पहली नजर में यह संबंधित नहीं लगता है। हालांकि, जैसा कि डिंग एंड हे 2004 के पेपर के-का मतलब प्रिंसिपल कंपोनेंट एनालिसिस के माध्यम से क्लस्टरिंग है , उनके बीच गहरा संबंध है।
अंतर्ज्ञान यह है कि पीसीए सभी डेटा वैक्टरों को कम संख्या में आईजेनवेक्टरों के रैखिक संयोजनों के रूप में प्रदर्शित करना चाहता है , और इसका अर्थ है-चुकता पुनर्निर्माण त्रुटि को कम करना। इसके विपरीत, K- साधन छोटी संख्या में क्लस्टर सेंट्रोइड्स के माध्यम से सभी डेटा वैक्टर का प्रतिनिधित्व करने का प्रयास करता है , अर्थात उन्हें क्लस्टर सेंट्रोइड वैक्टर की एक छोटी संख्या के रैखिक संयोजनों के रूप में प्रतिनिधित्व करने के लिए, जहां रैखिक संयोजन भार एकल को छोड़कर सभी शून्य होना चाहिए । यह माध्य-वर्ग पुनर्निर्माण त्रुटि को कम करने के लिए भी किया जाता है।n 1nn1
तो के-साधनों को सुपर-स्पार्स पीसीए के रूप में देखा जा सकता है।
डिंग एंड हे पेपर क्या करता है, यह इस संबंध को अधिक सटीक बनाता है।
दुर्भाग्य से, डिंग एंड हे पेपर में कुछ मैला संरचनाएं हैं (सबसे अच्छे रूप में) और आसानी से गलत समझा जा सकता है। उदाहरण के लिए, ऐसा लग सकता है कि डिंग और उसने दावा किया है कि K- साधन क्लस्टरिंग सॉल्यूशन के क्लस्टर सेंट्रोइड्स -डिमैटेबल PCA उप-श्रेणी में निहित हैं:(K−1)
प्रमेय 3.3। क्लस्टर के केंद्रक उप-क्षेत्र को पहले प्रमुख दिशा निर्देश [...] द्वारा चमकाया जाता है
।K−1
के लिए यह अर्थ होगा कि PC1 अक्ष पर अनुमानों जरूरी एक और क्लस्टर के लिए एक क्लस्टर के लिए नकारात्मक और सकारात्मक हो जाएगा, यानी PC2 अक्ष समूहों पूरी तरह से अलग कर देगा।K=2
यह या तो एक गलती है या कुछ मैला लेखन है; किसी भी मामले में, शाब्दिक रूप से लिया गया, यह विशेष दावा गलत है।
आइए लिए 2 डी में कुछ खिलौना उदाहरणों को देखने के साथ शुरू करें । मैंने एक ही सहसंयोजक मैट्रिक्स के साथ दो सामान्य वितरण से कुछ नमूने उत्पन्न किए, लेकिन अलग-अलग साधन। मैंने तब के-साधन और पीसीए दोनों चलाए। निम्न आंकड़ा ऊपर डेटा के तितर बितर साजिश को दर्शाता है, और नीचे K- साधन समाधान के अनुसार रंग का एक ही डेटा। मैं ब्लैक क्रॉस के साथ K- साधनों द्वारा पाई जाने वाली एक ब्लैक लाइन और क्लास सेंट्रोइड्स के रूप में पहली प्रमुख दिशा भी दिखाता हूं। PC2 अक्ष धराशायी काली रेखा के साथ दिखाया गया है। K- साधन को वैश्विक इष्टतम में अभिसरण सुनिश्चित करने के लिए यादृच्छिक बीजों के साथ बार दोहराया गया था ।१००K=2100
एक स्पष्ट रूप से यह देख सकता है कि भले ही वर्ग सेंट्रोइड्स पहले पीसी दिशा के बहुत करीब हो, लेकिन वे बिल्कुल उस पर नहीं गिरते हैं। इसके अलावा, भले ही PC2 अक्ष 1 और 4 में पूरी तरह से क्लस्टर को अलग करता है, लेकिन उपप्लॉट 2 और 3 में इसके गलत पक्ष पर कुछ बिंदु हैं।
इसलिए K-mean और PCA के बीच समझौता काफी अच्छा है, लेकिन यह सटीक नहीं है।
तो डिंग और उसने क्या साबित किया? सादगी के लिए, मैं केवल मामले पर विचार करूंगा । प्रत्येक क्लस्टर को सौंपे गए अंकों की संख्या और और अंकों की कुल संख्या । डिंग एंड हे के बाद, हम क्लस्टर सूचक वेक्टर में निम्नानुसार : यदि अंक क्लस्टर 1 और अंतर्गत आता है यदि यह क्लस्टर से संबंधित है 2. क्लस्टर इंडिकेटर वेक्टर में यूनिट की लंबाई और "केन्द्रित" है, अर्थात इसके तत्व शून्य ।एन 1 एन 2 n = n 1 + n 2 क्ष ∈ आर एन क्ष मैं = √K=2n1n2n=n1+n2 q∈Rn मैंक्षमैं=-√qi=n2/nn1−−−−−−√iqi=−n1/nn2−−−−−−√∥q∥=1∑qi=0
डिंग और वह बताते हैं कि K- loss function (कि K- साधन एल्गोरिथ्म कम करता है) को समान रूप से फिर से लिखा जा सकता है , जहां सभी बिंदुओं के बीच स्केलर उत्पादों का ग्राम मैट्रिक्स है: , जहां है , जहां डेटा मैट्रिक्स और केंद्रित डेटा मैट्रिक्स है।∑k∑i(xi−μk)2−q⊤GqGn×nG=X⊤cXcXn×2Xc
(नोट: मैं नोटेशन और शब्दावली का उपयोग कर रहा हूं जो उनके पेपर से थोड़ा अलग है लेकिन मुझे स्पष्ट लगता है)।
तो K- साधन solution एक केन्द्रित इकाई वेक्टर है जो अधिकतम । यह दिखाना आसान है कि पहला प्रमुख घटक (जब वर्गों की इकाई राशि को सामान्यीकृत किया जाता है) ग्राम मैट्रिक्स का प्रमुख आइजनवेक्टर होता है, अर्थात यह एक केन्द्रित इकाई वेक्टर मैक्सिमाइज़िंग । एकमात्र अंतर यह है कि इसके अतिरिक्त केवल दो अलग-अलग मानों के लिए विवश है, जबकि में यह बाधा नहीं है।qq⊤Gqpp⊤Gpqp
दूसरे शब्दों में, K-mean और PCA एक ही उद्देश्य फ़ंक्शन को अधिकतम करते हैं , एकमात्र अंतर यह है कि K-means में अतिरिक्त "श्रेणीबद्ध" बाधा है।
यह इस कारण से है कि के-साधन (विवश) और पीसीए (अप्रतिबंधित) समाधानों में से अधिकांश एक-दूसरे के करीब होंगे, जैसा कि हमने ऊपर सिमुलेशन में देखा था, लेकिन किसी को उनके समान होने की उम्मीद नहीं करनी चाहिए। ले रहा है और उसके सभी नकारात्मक तत्वों की स्थापना के बराबर होना चाहिए और उसके सभी सकारात्मक तत्वों को आम तौर पर होगा नहीं बिल्कुल देना ।p−n1/nn2−−−−−−√n2/nn1−−−−−−√q
डिंग और वह इसे अच्छी तरह से समझते हैं क्योंकि वे अपने प्रमेय को इस प्रकार बनाते हैं:
प्रमेय 2.2। K- मतलब क्लस्टरिंग के लिए जहां , क्लस्टर इंडिकेटर वेक्टर का निरंतर समाधान [पहला] प्रमुख घटक हैK=2
ध्यान दें कि शब्द "निरंतर समाधान"। इस प्रमेय को सिद्ध करने के बाद वे अतिरिक्त रूप से टिप्पणी करते हैं कि पीसीए का उपयोग K- साधन पुनरावृत्तियों को प्रारंभ करने के लिए किया जा सकता है, जो कुल अर्थ देता है कि हम को करीब होने की उम्मीद करते हैं । लेकिन किसी को अभी भी पुनरावृत्तियों को निष्पादित करने की आवश्यकता है, क्योंकि वे समान नहीं हैं।qp
हालांकि, डिंग और वह फिर लिए एक अधिक सामान्य उपचार विकसित करने और थ्योरम 3.3 के रूप में तैयार करने के लिए आगे बढ़ते हैंK>2
प्रमेय 3.3। क्लस्टर के केंद्रक उप-क्षेत्र को पहले प्रमुख दिशा निर्देश [...] द्वारा चमकाया जाता है
।K−1
मैं धारा 3 के गणित के माध्यम से नहीं गया था, लेकिन मेरा मानना है कि यह प्रमेय वास्तव में K- साधनों के "निरंतर समाधान" को संदर्भित करता है, अर्थात इसके कथन को K- साधनों के निरंतर समाधान के "क्लस्टर सेंट्रोइड स्पेस" को पढ़ना चाहिए। spanned [...] "।
डिंग और वह, हालांकि, यह महत्वपूर्ण योग्यता नहीं बनाते हैं, और इसके अलावा उनके सार में लिखते हैं
यहाँ हम साबित करते हैं कि प्रमुख घटक K- साधन क्लस्टरिंग के लिए असतत क्लस्टर सदस्यता संकेतकों के निरंतर समाधान हैं। समान रूप से, हम दिखाते हैं कि क्लस्टर सेंट्रोइड्स द्वारा फैलाया गया उप-समूह शर्तों पर काटे गए डेटा सहसंयोजक मैट्रिक्स के वर्णक्रमीय विस्तार द्वारा दिया जाता है ।K−1
पहला वाक्य बिल्कुल सही है, लेकिन दूसरा नहीं है। यह मेरे लिए स्पष्ट नहीं है कि यह एक (बहुत) मैला लेखन है या वास्तविक गलती है। मैंने बहुत ही विनम्रता से दोनों लेखकों को स्पष्टीकरण के लिए ईमेल किया है। (दो महीने बाद अपडेट करें: मैंने कभी उनसे पीछे नहीं सुना।)
मतलाब सिमुलेशन कोड
figure('Position', [100 100 1200 600])
n = 50;
Sigma = [2 1.8; 1.8 2];
for i=1:4
means = [0 0; i*2 0];
rng(42)
X = [bsxfun(@plus, means(1,:), randn(n,2) * chol(Sigma)); ...
bsxfun(@plus, means(2,:), randn(n,2) * chol(Sigma))];
X = bsxfun(@minus, X, mean(X));
[U,S,V] = svd(X,0);
[ind, centroids] = kmeans(X,2, 'Replicates', 100);
subplot(2,4,i)
scatter(X(:,1), X(:,2), [], [0 0 0])
subplot(2,4,i+4)
hold on
scatter(X(ind==1,1), X(ind==1,2), [], [1 0 0])
scatter(X(ind==2,1), X(ind==2,2), [], [0 0 1])
plot([-1 1]*10*V(1,1), [-1 1]*10*V(2,1), 'k', 'LineWidth', 2)
plot(centroids(1,1), centroids(1,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(1,1), centroids(1,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot(centroids(2,1), centroids(2,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(2,1), centroids(2,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot([-1 1]*5*V(1,2), [-1 1]*5*V(2,2), 'k--')
end
for i=1:8
subplot(2,4,i)
axis([-8 8 -8 8])
axis square
set(gca,'xtick',[],'ytick',[])
end