এটি সত্য যে কে-মানে ক্লাস্টারিং এবং পিসিএর খুব আলাদা লক্ষ্য রয়েছে এবং প্রথম দর্শনে এটি সম্পর্কিত বলে মনে হয় না। যাইহোক, ডিং অ্যান্ড হিজ 2004 পেপারে কে-মানে ক্লাস্টারিংয়ের মাধ্যমে প্রিন্সিপাল কম্পোনেন্ট বিশ্লেষণের মাধ্যমে ব্যাখ্যা করা হয়েছে, তাদের মধ্যে গভীর সংযোগ রয়েছে।
স্বজ্ঞাততাটি হ'ল পিসিএ সমস্ত ডেটা ভেক্টরকে স্বল্প সংখ্যক ইগেনভেেক্টরগুলির রৈখিক সংমিশ্রণ হিসাবে উপস্থাপন করার চেষ্টা করে এবং এটি গড়-স্কোয়ার পুনর্গঠন ত্রুটি হ্রাস করতে পারে। বিপরীতে, কে-মানে ক্লাস্টার সেন্ট্রয়েডের সংখ্যক সংখ্যক মাধ্যমে সমস্ত এন ডেটা ভেক্টরকে উপস্থাপন করতে চায় , অর্থাত্ তাদের ক্লাস্টার সেন্ট্রয়েড ভেক্টরের একটি সংখ্যক সংখ্যক লিনিয়ার সংমিশ্রণ হিসাবে প্রতিনিধিত্ব করতে যেখানে একক 1 বাদে লিনিয়ার সংমিশ্রণ ওজন অবশ্যই সমস্ত শূন্য হতে হবে । গড় স্কোয়ার পুনর্গঠন ত্রুটি কমাতে এটিও করা হয়।nn1
সুতরাং কে-মানে একটি অতি-স্পার্স পিসিএ হিসাবে দেখা যেতে পারে।
এই সংযোগটি আরও সুনির্দিষ্ট করে তুলতে ডিং অ্যান্ড হি পেপার কী করেন।
দুর্ভাগ্যক্রমে, ডিং এন্ড হি পেপারে কিছু ঝাঁঝালো সূত্র রয়েছে (সেরা) এবং সহজেই ভুল বোঝাবুঝি হতে পারে। উদাহরণস্বরূপ মনে হতে পারে যে ডিং অ্যান্ড তিনি দাবি করেছেন যে কে-ক্লাস্টার সেন্ট্রয়েডস ক্লাস্টারিং সলিউশনটি -ডিমেন্টেশনাল পিসিএ সাবস্পেসে রয়েছে:(K−1)
উপপাদ্য ৩.৩। ক্লাস্টার সেন্ট্রয়েড সাবস্পেসটি প্রথম মূল নির্দেশিকা দ্বারা প্রসারিত
[...]।K−1
জন্য এটি বোঝায় যে পিসি 1 অক্ষের অনুমানগুলি অবশ্যই একটি ক্লাস্টারের জন্য নেতিবাচক এবং অন্য ক্লাস্টারের জন্য ধনাত্মক হবে, অর্থাৎ পিসি 2 অক্ষগুলি ক্লাস্টারগুলি পুরোপুরি আলাদা করবে।K=2
এটি হয় ভুল বা কিছু ঝোঁক লেখা; আক্ষরিক অর্থে নেওয়া যাই হোক না কেন, এই বিশেষ দাবিটি মিথ্যা।
আসুন জন্য 2 ডি তে কিছু খেলনা উদাহরণ দেখে শুরু করি । আমি দুটি সাধারণ ডিস্ট্রিবিউশন থেকে একই কোভেরিয়েন্স ম্যাট্রিক্সের সাথে পরিবর্তিত হলেও কিছু উপকরণ তৈরি করেছি। আমি তখন কে-মানে এবং পিসিএ উভয়ই চালিয়েছি। নীচের চিত্রটি উপরের ডেটারগুলির বিক্ষিপ্ত প্লট এবং নীচের কে-ইস্যু সমাধান অনুসারে একই ডেটা বর্ণযুক্ত দেখায়। আমি কৃষ্ণ রেখা হিসাবে প্রথম মূল দিকটি এবং কালো ক্রস সহ কে-ইমেস দ্বারা পাওয়া শ্রেণীর সেন্ট্রয়েডগুলিও দেখাই। পিসি 2 অক্ষটি ড্যাশড ব্ল্যাক লাইনের সাথে দেখানো হয়েছে। বিশ্বব্যাপী সর্বোত্তমতায় রূপান্তর নিশ্চিত করতে কে-মানে 100 বার এলোমেলো বীজের সাথে পুনরাবৃত্তি হয়েছিল ।K=2100
একটি পরিষ্কারভাবে দেখতে পাচ্ছে যে ক্লাস সেন্ট্রয়েডগুলি প্রথম পিসি দিকের খুব কাছাকাছি থাকার প্রবণতা সত্ত্বেও, তারা একেবারেই এটিকে পড়ে না । তবুও, যদিও পিসি 2 অক্ষগুলি সাবপ্লটগুলি 1 এবং 4 এ ক্লাস্টারগুলিকে পুরোপুরি পৃথক করে, সাবপ্লট 2 এবং 3 এ এর ভুল দিকের কয়েকটি পয়েন্ট রয়েছে।
সুতরাং কে-মানে এবং পিসিএর মধ্যে চুক্তিটি বেশ ভাল, তবে এটি সঠিক নয়।
K=2n1n2n=n1+n2 q∈Rnqi=n2/nn1−−−−−−√iqi=−n1/nn2−−−−−−√∑ q i = 0∥q∥=1∑qi=0
ডিং এবং তিনি দেখান যে কে-মানে ক্ষতি ফাংশন কে (যে কে-মানে অ্যালগরিদম মিনিমাইজ করা হয়েছে) হিসাবে সমানভাবে পুনরায় লেখা যেতে পারে - , যেখানে হয় গ্রাম সব বিন্দুর মধ্যে স্কালে পণ্য ম্যাট্রিক্স: , যেখানে হয় ডেটা ম্যাট্রিক্স এবং কেন্দ্রিক ডেটা ম্যাট্রিক্স।∑k∑i(xi−μk)2−q⊤GqGn×nG=X⊤cXcXn×2Xc
(দ্রষ্টব্য: আমি স্বরলিপি এবং পরিভাষা ব্যবহার করছি যা তাদের কাগজ থেকে সামান্য পৃথক হলেও আমি আরও স্পষ্ট মনে করি)।
সুতরাং কে-মানে সমাধান হ'ল একটি কেন্দ্রিক ইউনিট ভেক্টর সর্বোচ্চ । এটি সহজেই দেখানো যায় যে প্রথম প্রধান উপাদানটি (যখন বর্গক্ষেত্রের একক যোগফলকে স্বাভাবিক করা হয়) হ'ল গ্রাম ম্যাট্রিক্সের শীর্ষস্থানীয় ইগেনভেেক্টর, অর্থাত এটি একটি কেন্দ্রিক ইউনিট ভেক্টর সর্বাধিক । পার্থক্যটি হ'ল অতিরিক্ত মাত্র দুটি পৃথক মান থাকতে বাধ্য হয় যেখানে এই সীমাবদ্ধতা নেই।qq⊤Gqpp⊤Gpqp
অন্য কথায়, কে-মানে এবং পিসিএ একই উদ্দেশ্য ফাংশনকে সর্বাধিক করে তোলে , কেবলমাত্র পার্থক্যটি হ'ল কে-মানেতে অতিরিক্ত "শ্রেণিবদ্ধ" সীমাবদ্ধতা রয়েছে।
এটি যুক্তিতে দাঁড়ায় যে বেশিরভাগ সময় কে-মানে (সীমাবদ্ধ) এবং পিসিএ (নিয়ন্ত্রণহীন) সমাধানগুলি একে অপরের নিকটবর্তী হওয়া বেশ সুন্দর হবে, যেমন আমরা উপরের সিমুলেশনে দেখেছি, তবে তাদের এক হিসাবে প্রত্যাশা করা উচিত নয়। টেকিং এবং এর সমস্ত নেতিবাচক উপাদান সেটিং সমান হতে এবং তার সব ইতিবাচক উপাদান সাধারণত হবে না ঠিক দিতে ।p−n1/nn2−−−−−−√n2/nn1−−−−−−√q
ডিং এবং তিনি এটিকে ভালভাবে বুঝতে পেরেছেন কারণ তারা তাদের উপপাদ্যটি নিম্নরূপ রচনা করেছেন:
উপপাদ্য ২.২। কে-মানে ক্লাস্টারিংয়ের জন্য যেখানে , ক্লাস্টার সূচক ভেক্টরের ক্রমাগত সমাধান হ'ল [প্রথম] প্রধান উপাদানK=2
শব্দ "ধারাবাহিক সমাধান" নোট করুন। এই উপপাদ্য প্রমাণ পর অতিরিক্ত মন্তব্য পিসিএ আরম্ভ করতে পুনরাবৃত্তিও যা মোট ধারনা দেওয়া যে, আমরা আশা তোলে কে-মানে ব্যবহার করা যেতে পারে নিকটবর্তী হতে । তবে একটি এখনও পুনরাবৃত্তি সম্পাদন করা প্রয়োজন, কারণ তারা অভিন্ন নয়।qp
যাইহোক, ডিং অ্যান্ড হি তার পরে জন্য আরও সাধারণ চিকিত্সা বিকাশ করতে এবং থিয়োরামটি ৩.৩ হিসাবে তৈরি করে শেষ করেছেনK>2
উপপাদ্য ৩.৩। ক্লাস্টার সেন্ট্রয়েড সাবস্পেসটি প্রথম মূল নির্দেশাবলী দ্বারা প্রসারিত
[...]।K−1
আমি ধারা 3 এর গণিতের মধ্য দিয়ে যাই নি, তবে আমি বিশ্বাস করি যে এই উপপাদ্যটি আসলে কে-মানেগুলির "ক্রমাগত সমাধান" বোঝায়, তার বিবৃতিতে কে-মানেগুলির অবিচ্ছিন্ন সমাধানের ক্লাস্টার সেন্ট্রয়েড স্থানটি পড়তে হবে is বিস্তৃত [...] "।
ডিং এন্ড হি, তবে এই গুরুত্বপূর্ণ যোগ্যতাটি তৈরি করবেন না এবং তবুও তাদের বিমূর্তে এটি লিখুন write
এখানে আমরা প্রমাণ করি যে মূল উপাদানগুলি হ'ল কে-মানে ক্লাস্টারিংয়ের জন্য বিচ্ছিন্ন ক্লাস্টার সদস্যতার সূচকের একটানা সমাধান। সমানভাবে, আমরা দেখাই যে ক্লাস্টার সেন্ট্রয়েড দ্বারা বিস্তৃত উপসর্গটি পদগুলিতে কাটা ডেটা কোভারিয়েন্স ম্যাট্রিক্সের বর্ণালী সম্প্রসারণ দ্বারা দেওয়া হয়েছে ।K−1
প্রথম বাক্যটি একেবারে সঠিক, তবে দ্বিতীয়টি নয়। এটি (খুব) slালু লেখা বা আসল ভুল কিনা তা আমার কাছে স্পষ্ট নয়। আমি উভয় লেখককে স্পষ্টতার জন্য জিজ্ঞাসা করে খুব নম্রভাবে ইমেল করেছি। (দুই মাস পরে আপডেট করুন: আমি তাদের কাছ থেকে আর কখনও শুনিনি))
মতলব সিমুলেশন কোড
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