একটি দূরত্বের ম্যাট্রিক্সের সাথে ক্লাস্টারিং


52

আমার একটি (প্রতিসামগ্রী) ম্যাট্রিক্স রয়েছে Mযা প্রতিটি জোড় নোডের মধ্যে দূরত্ব উপস্থাপন করে। উদাহরণ স্বরূপ,

    ABCDEFGHIJKL
এ 0 20 20 20 40 60 60 60 100 120 120 120
বি 20 0 20 20 60 80 80 120 120 140 140 140
সি 20 20 0 20 60 80 80 120 120 140 140 140
ডি 20 20 20 0 60 80 80 120 120 140 140 140
ই 40 60 60 60 0 20 20 20 60 80 80 80
এফ 60 80 80 80 20 0 20 20 40 60 60 60
জি 60 80 80 80 20 20 0 20 60 80 80 80
এইচ 60 80 80 80 20 20 20 0 60 80 80 80
আমি 100 120 120 120 60 60 60 60 0 20 20 20
জে 120 140 140 140 80 60 80 80 20 0 20 20
কে 120 140 140 140 80 60 80 80 20 20 0 20
এল 120 ​​140 140 140 80 60 80 80 20 20 20 0

ক্লাস্টারগুলি বের করার কোনও পদ্ধতি আছে M(যদি প্রয়োজন হয় তবে ক্লাস্টারের সংখ্যা নির্ধারণ করা যেতে পারে), যেমন প্রতিটি ক্লাস্টারের মধ্যে ছোট ছোট দূরত্বযুক্ত নোড থাকে। উদাহরণস্বরূপ, গুচ্ছগুলি হবে (A, B, C, D), (E, F, G, H)এবং (I, J, K, L)

আমি ইতিমধ্যে kইউপিজিএমএ এবং -সামগ্রী চেষ্টা করেছি কিন্তু ফলস্বরূপ ক্লাস্টারগুলি খুব খারাপ।

দূরত্বগুলি হল এলোমেলোভাবে হাঁটার নোড Aথেকে নোড B( != A) যেতে এবং নোডে ফিরে যেতে গড় পদক্ষেপগুলি A। এটি M^1/2মেট্রিকের গ্যারান্টিযুক্ত । kবীজ চালাতে , আমি সেন্ট্রয়েড ব্যবহার করি না। আমি নোড nক্লাস্টারের cমধ্যকার দূরত্বকে nএবং সমস্ত নোডের মধ্যবর্তী গড় দূরত্ব হিসাবে সংজ্ঞায়িত করি c

অনেক ধন্যবাদ :)


1
আপনি ইতিমধ্যে ইউপিজিএমএ চেষ্টা করেছেন এমন তথ্য যোগ করার কথা বিবেচনা করা উচিত (এবং অন্যেরা যা আপনি চেষ্টা করেছেন) :)
বিজন পোলেক্স

1
আমার একটা প্রশ্ন আছে. কেন আপনি বলেছেন যে কে-মানে খারাপভাবে সম্পাদন করা হয়েছে? আমি আপনার ম্যাট্রিক্স কে-মানেতে উত্তীর্ণ করেছি এবং এটি নিখুঁত ক্লাস্টারিং করেছে। আপনি কে (ক্লাস্টারের সংখ্যা) কে কে-মানে দিয়ে দেননি?

3
@ ব্যবহারকারী12023 আমি মনে করি আপনি প্রশ্নটি ভুল বুঝেছেন। ম্যাট্রিক্স বিন্দুগুলির একটি সিরিজ নয় - এটি তাদের মধ্যে যুগলতর দূরত্ব। আপনি পয়েন্টগুলির সংকলনের সেন্ট্রয়েড গণনা করতে পারবেন না যখন আপনি কেবল তাদের মধ্যে দূরত্ব রাখেন (এবং তাদের প্রকৃত স্থানাঙ্ক নয়), অন্তত কোনও সুস্পষ্ট উপায়ে নয়।
স্টম্পি জো পিট

7
কে-মানে দূরত্বের ম্যাট্রিক্সগুলিকে সমর্থন করে না । এটি কখনই পয়েন্ট-টু-পয়েন্ট দূরত্ব ব্যবহার করে না। সুতরাং আমি কেবল ধরে নিতে পারি এটি অবশ্যই আপনার ম্যাট্রিক্সকে ভেক্টর হিসাবে পুনরায় ব্যাখ্যা করেছে , এবং এই ভেক্টরগুলির উপর দৌড়েছে ... সম্ভবত আপনি যে অন্যান্য অ্যালগরিদমের চেষ্টা করেছিলেন তাদের ক্ষেত্রেও একই ঘটনা ঘটেছে: তারা কাঁচা ডেটা প্রত্যাশা করেছিল এবং আপনি একটি দূরত্বের ম্যাট্রিক্স পেরিয়েছেন।
অ্যানি-মৌসে

উত্তর:


38

বিকল্প একটি সংখ্যা আছে।

কে-মেডয়েডস ক্লাস্টারিং

প্রথমত, আপনি কে-মানে ক্লাস্টারিংয়ের পরিবর্তে মেডোইডগুলি (পাম) চারপাশে বিভাজন চেষ্টা করতে পারেন। এটি আরও দৃust় এবং আরও ভাল ফলাফল দিতে পারে। ভ্যান ডের লান আলগোরিদিমটি পুনরায় কাজ করেছিলেন। আপনি যদি এটি নিজে প্রয়োগ করতে চলেছেন তবে তাঁর নিবন্ধটি পড়ার মতো।

বড় ডেটাসেটের জন্য একটি নির্দিষ্ট কে-মেডয়েডস ক্লাস্টারিং অ্যালগরিদম রয়েছে। অ্যালগরিদমকে আর-এ ক্লারা বলা হয় এবং এটি ডেটা-তে গ্রুপ সন্ধানের অধ্যায়ে বর্ণিত : ক্লাস্টার বিশ্লেষণের পরিচিতি An কাউফম্যান, এল এবং রুসিউউ, পিজে (1990) লিখেছেন।

শ্রেণিবদ্ধ ক্লাস্টারিং

UPGMA এর পরিবর্তে, আপনি কিছু অন্যান্য শ্রেণিবদ্ধ ক্লাস্টারিং বিকল্পগুলি চেষ্টা করতে পারেন। প্রথমত, যখন আপনি শ্রেণিবিন্যাসিক ক্লাস্টারিং ব্যবহার করেন, তখন নিশ্চিত হয়ে নিন যে আপনি পার্টিশন পদ্ধতিটি সঠিকভাবে সংজ্ঞায়িত করেছেন। এই বিভাজন পদ্ধতিটি পর্যবেক্ষণ এবং গুচ্ছগুলির মধ্যে দূরত্বগুলি কীভাবে গণনা করা হয় তা মূলত। আমি বেশিরভাগ ওয়ার্ডের পদ্ধতি বা সম্পূর্ণ লিঙ্কেজ ব্যবহার করি তবে অন্যান্য বিকল্পগুলি আপনার পছন্দ হতে পারে।

আপনি এখনও এটি চেষ্টা করেছেন কিনা তা জানেন না, তবে একক সংযোগ পদ্ধতি বা প্রতিবেশী যোগদানের ক্ষেত্রে প্রায়শই ফাইলেজেনেটিক অ্যাপ্লিকেশনগুলিতে ইউপিজিএমএর উপরে পছন্দ করা হয়। আপনি যদি এখনও এটি চেষ্টা না করেন, আপনি এটির পাশাপাশি একটি শটও দিতে পারেন, কারণ এটি প্রায়শই উল্লেখযোগ্যভাবে ভাল ফলাফল দেয়।


আর-তে আপনি প্যাকেজ ক্লাস্টারটি একবার দেখে নিতে পারেন । সমস্ত বর্ণিত অ্যালগরিদমগুলি সেখানে প্রয়োগ করা হয়। দেখুন? প্যাম,? ক্লারা,? ক্লক, ...? কিমানের অ্যালগোরিদমের বিভিন্ন বাস্তবায়নও দেখুন? কখনও কখনও অন্য অ্যালগরিদম chosing ক্লাস্টারিং যথেষ্ট পরিমাণে উন্নতি করতে পারে।


সম্পাদনা: কিছু বিষয়ে সবেমাত্র চিন্তা করা: আপনি যদি গ্রাফ এবং নোড এবং পছন্দগুলি নিয়ে কাজ করেন তবে আপনার মার্কভ ক্লাস্টারিং অ্যালগরিদমটিও একবার দেখে নেওয়া উচিত। এটি একটি উদাহরণস্বরূপ বিস্ফোরণের মিলগুলির উপর ভিত্তি করে গ্রুপিং ক্রমগুলিতে ব্যবহৃত হয় এবং অবিশ্বাস্যভাবে ভাল সম্পাদন করে। এটি আপনার জন্য ক্লাস্টারিং করতে পারে বা আপনি যে গবেষণার দিকে মনোনিবেশ করছেন তার সমাধান করতে কীভাবে আপনাকে কিছু ধারণা দিতে পারে। বাস্তবে এ সম্পর্কে কিছু না জেনে আমি অনুমান করি যে তার ফলাফলগুলি অবশ্যই দেখার মতো। যদি আমি এটি বলতে পারি, আমি এখনও স্টিজন ভ্যান ডোনজেনের এই পদ্ধতিটি বিবেচনা করি যার দ্বারা আমি কখনও সম্মুখীন হয়েছি ক্লাস্টারিংয়ের অন্যতম দুর্দান্ত ফলাফল results

http://www.micans.org/mcl/


22

আপনার দূরত্বের ম্যাট্রিক্সে ক্লাস্টার হাইলাইট করার একটি উপায় হ'ল বহুমাত্রিক স্কেলিং । 2D-স্পেসে ব্যক্তিদের (এখানে যা আপনি আপনার নোড বলছেন) প্রজেক্ট করার সময় এটি পিসিএর সাথে তুলনীয় সমাধান সরবরাহ করে। এটি নিষ্ক্রিয় করা হয়েছে, সুতরাং আপনি ক্লাস্টারগুলির সংখ্যাটি কোনও পূর্বনির্ধারিত করতে পারবেন না তবে আমি মনে করি এটি প্রদত্ত দূরত্ব বা মিলের ম্যাট্রিক্সের দ্রুত সংক্ষিপ্তকরণে সহায়তা করতে পারে।

আপনি আপনার ডেটা দিয়ে যা পাবেন তা এখানে:

tmp <- matrix(c(0,20,20,20,40,60,60,60,100,120,120,120,
                20,0,20,20,60,80,80,80,120,140,140,140,
                20,20,0,20,60,80,80,80,120,140,140,140,
                20,20,20,0,60,80,80,80,120,140,140,140,
                40,60,60,60,0,20,20,20,60,80,80,80,
                60,80,80,80,20,0,20,20,40,60,60,60,
                60,80,80,80,20,20,0,20,60,80,80,80,
                60,80,80,80,20,20,20,0,60,80,80,80,
                100,120,120,120,60,40,60,60,0,20,20,20,
                120,140,140,140,80,60,80,80,20,0,20,20,
                120,140,140,140,80,60,80,80,20,20,0,20,
                120,140,140,140,80,60,80,80,20,20,20,0),
              nr=12, dimnames=list(LETTERS[1:12], LETTERS[1:12]))
d <- as.dist(tmp)
mds.coor <- cmdscale(d)
plot(mds.coor[,1], mds.coor[,2], type="n", xlab="", ylab="")
text(jitter(mds.coor[,1]), jitter(mds.coor[,2]),
     rownames(mds.coor), cex=0.8)
abline(h=0,v=0,col="gray75")

MDS

আমি পৃথক কেসগুলির অনুমতি দেওয়ার জন্য x এবং y স্থানাঙ্কগুলিতে একটি ছোট্ট জিটারিং যুক্ত করেছি। আপনি যদি ভিন্নতার সাথে কাজ করতে পছন্দ করেন তবে এর tmpমাধ্যমে প্রতিস্থাপন করুন 1-tmp, তবে এটি মূলত একই চিত্র দেয়। তবে, এখানে একক শ্রেণিবদ্ধের মানদণ্ড সহ শ্রেণিবদ্ধ ক্লাস্টারিং সমাধান :

plot(hclust(dist(1-tmp), method="single"))

হাইকোর্টের

আপনি ডেনড্রোগ্রাম বা আরও শক্তিশালী পদ্ধতির উপর ভিত্তি করে ক্লাস্টারগুলির নির্বাচন আরও পরিমার্জন করতে পারেন, উদাহরণস্বরূপ এই সম্পর্কিত প্রশ্নটি দেখুন: অভ্যাসগত শ্রেণিবদ্ধ ক্লাস্টারিংয়ের জন্য কোন স্টপ-মাপদণ্ড ব্যবহার করা হয়?


2

স্পেকট্রাল ক্লাস্টারিং [১] এর জন্য একটি অ্যাফিনিটি ম্যাট্রিক্স প্রয়োজন, ক্লাস্টারিংয়ের পচনটির প্রথম প্রথম eigenfunction দ্বারা সংজ্ঞায়িত হচ্ছেK

L=D1/2AD1/2

With এ With সাথে অ্যাফিনিটি ম্যাট্রিক্স এবং হিসাবে তির্যক ম্যাট্রিক্স হিসাবে সংজ্ঞায়িত করা হয়েছে (সম্পাদনা করুন: অস্পষ্ট হওয়ার জন্য দুঃখিত, তবে আপনি যদি সর্বোচ্চ সম্ভাব্যতা জানেন তবে আপনি একটি দূরত্বের ম্যাট্রিক্স থেকে একটি ম্যাট্রিক্স তৈরি করতে পারবেন) / হিসাবে যুক্তিসঙ্গত দূরত্ব , যদিও অন্যান্য স্কিমগুলিও বিদ্যমান)ADAij=1dij/max(d)

{Di,i=jAi,jDij=0

সঙ্গে এর eigendecomposition হচ্ছে , কলাম হিসাবে স্তুপীকৃত eigenfunctions একমাত্র পালন সর্ববৃহৎ eigenvectors , আমরা সারি সাধারণ ম্যাট্রিক্স সংজ্ঞায়িতXLKX

Yij=Xij(j(Xij)2)1/2

এর প্রতিটি সারি in এর একটি বিন্দু এবং একটি সাধারণ ক্লাস্টারিং অ্যালগরিদম (যেমন কে-মানে) দিয়ে ক্লাস্টার করা যায়।YRk

একটি উদাহরণ দেখতে এখানে আমার উত্তর দেখুন: https://stackoverflow.com/a/37933688/2874779


[1] এনজি, এওয়াই, জর্ডান, এমআই, এবং ওয়েইস, ওয়াই (2002)। বর্ণালী ক্লাস্টারিংয়ে: বিশ্লেষণ এবং একটি অ্যালগরিদম। নিউরাল ইনফরমেশন প্রসেসিং সিস্টেমের অগ্রগতি, 2, 849-856। Pg.2


2

আপনি যা করছেন তা একে অপরের কাছাকাছি থাকা গ্রাফ বা নেটওয়ার্কের নোড একসাথে গুচ্ছ করার চেষ্টা করছে। এই সমস্যার জন্য নিবেদিত একটি সম্পূর্ণ ক্ষেত্র রয়েছে যা কখনও কখনও নেটওয়ার্কগুলিতে সম্প্রদায় সনাক্তকরণ বলে । এই দৃষ্টিকোণ থেকে আপনার সমস্যার দিকে তাকানো সম্ভবত বিষয়গুলি স্পষ্ট করতে পারে।

আপনি এই সমস্যার জন্য নিবেদিত অনেক অ্যালগরিদম দেখতে পাবেন এবং বাস্তবে এগুলির মধ্যে কয়েকটি আপনার ধারণার উপর ভিত্তি করে রয়েছে যা র্যান্ডম ওয়াক সহ নোডের মধ্যে দূরত্ব পরিমাপ করা।

সমস্যাটি প্রায়শই মডুলারালিটি অপটিমাইজেশন হিসাবে সূচিত হয় [১] যেখানে ক্লাস্টারিংয়ের মডুলারালিটি পরিমাপ করে যে ক্লাস্টারিং কীভাবে নেটওয়ার্ককে ঘনভাবে সংযুক্ত ক্লাস্টারে পৃথক করে (যেমন ক্লাস্টার যেখানে নোডগুলি একে অপরের নিকটে থাকে)।

প্রকৃতপক্ষে, আপনি দেখতে পারেন যে মডুলারালিটি দুটি এলোমেলো ওয়াকারের জন্য প্রাথমিকভাবে বিয়োগ বিচ্ছিন্নতার চেয়ে একই ক্লাস্টারে এক ধাপ পরে একটি এলোমেলো ওয়াকার থাকার সম্ভাবনার সমান।

যদি আপনি এলোমেলো পদচারণার আরও পদক্ষেপের জন্য মঞ্জুরি দেন, আপনি নেটওয়ার্কের মোটা গুচ্ছ খুঁজছেন are এলোমেলো পদক্ষেপের পদক্ষেপের সংখ্যা তাই রেজোলিউশন প্যারামিটারের ভূমিকা পালন করে যা গুচ্ছগুলির শ্রেণিবদ্ধ পুনরুদ্ধার করতে দেয়। এই ক্ষেত্রে, যে পরিমাণটি র‌্যান্ডম ওয়াকারদের টি পদক্ষেপের পরে তাদের প্রাথমিক ক্লাস্টারে থাকার প্রবণতা প্রকাশ করে তাকে সময় পার্টিশনের মার্কভ স্থিতিশীলতা বলা হয় [2] এবং t = 1 হলে এটি পরিমিতির সমতুল্য ।

অতএব আপনি আপনার গ্রাফের ক্লাস্টারিং সন্ধান করে আপনার সমস্যার সমাধান করতে পারেন যা একটি নির্দিষ্ট সময়টিতে স্থায়িত্বকে অনুকূল করে তোলে , যেখানে টি হল রেজোলিউশন প্যারামিটার (বৃহত্তর টি আপনাকে বৃহত্তর ক্লাস্টার দেবে)। স্থিতিশীলতা (বা একটি রেজোলিউশন প্যারামিটারের সাথে মডুলারালিটি) অনুকূলকরণের জন্য সর্বাধিক ব্যবহৃত পদ্ধতি হ'ল লুভাইন অ্যালগরিদম [৩]। আপনি এখানে একটি বাস্তবায়ন পেতে পারেন: https://github.com/michaelschaub/generalizedLuvain

[1] নিউম্যান, এমইজে ও গিরওয়ান, এম। নেটওয়ার্কগুলিতে সম্প্রদায় কাঠামো সন্ধান এবং মূল্যায়ন করেছেন। Phys। রেভ। ই 69, 026113 (2004)।

[২] ডেলভেন, জে.সি., ইয়ালিরাকি, এসএন এবং বারাহোনা, এম। সময়ের স্কেলগুলি জুড়ে গ্রাফ সম্প্রদায়ের স্থায়িত্ব। Proc। Natl। Acad। সী। 107, 12755–12760 (2010)।

[3] ব্লোনডেল, ভিডি, গিলিয়াম, জে.এল., লাম্বিয়োট, আর। এবং লেফেভ্রে, ই। বড় নেটওয়ার্কগুলিতে সম্প্রদায়ের দ্রুত উদ্ঘাটন। জে স্ট্যাটাস মেচ। থিওরি এক্সপ্রেস 2008, P10008 (2008)।


1

ঠিক আছে, প্রদত্ত মিলের ম্যাট্রিক্সে কে-মানে ক্লাস্টারিং করা সম্ভব, প্রথমে আপনাকে ম্যাট্রিক্সকে কেন্দ্র করে তারপরে ম্যাট্রিক্সের ইগেনভ্যালুগুলি নেওয়া দরকার। চূড়ান্ত এবং সর্বাধিক গুরুত্বপূর্ণ পদক্ষেপটি ভেক্টরগুলি পাওয়ার জন্য ইগেনভেেক্টরগুলির প্রথম দুটি সেটকে ইগেনভ্যালুগুলির ত্রিভুজের বর্গমূলের সাথে গুণমান এবং তারপরে কে-মাধ্যমের সাহায্যে এগিয়ে যাওয়া। কোডের নীচে এটি কীভাবে করা যায় তা দেখায়। আপনি মিলের ম্যাট্রিক্স পরিবর্তন করতে পারেন। fpdist হ'ল মিল ম্যাট্রিক্স।

mds.tau <- function(H)
{
  n <- nrow(H)
   P <- diag(n) - 1/n
   return(-0.5 * P %*% H %*% P)
  }
  B<-mds.tau(fpdist)
  eig <- eigen(B, symmetric = TRUE)
  v <- eig$values[1:2]
#convert negative values to 0.
v[v < 0] <- 0
X <- eig$vectors[, 1:2] %*% diag(sqrt(v))
library(vegan)
km <- kmeans(X,centers= 5, iter.max=1000, nstart=10000) .
#embedding using MDS
cmd<-cmdscale(fpdist)

0

আপনি ম্যাট্রিক্সে ক্লাস্টারিং চালানোর আগে আপনি ফ্যাক্টর বিশ্লেষণ কৌশলগুলির মধ্যে একটি করে চেষ্টা করতে পারেন, এবং দূরত্বের ম্যাট্রিক্স গণনা করার জন্য সবচেয়ে গুরুত্বপূর্ণ পরিবর্তনশীল রাখুন keep আপনি যে কাজটি করতে পারেন তা হ'ল ধোঁয়াশালী পদ্ধতিগুলি ব্যবহার করা যা এই ধরণের ক্ষেত্রে (কমপক্ষে আমার অভিজ্ঞতায়) আরও ভাল কাজ করার ঝোঁক রয়েছে, প্রথমে সিমিয়ানস, ফাজি কে-মেডয়েড এবং বিশেষত জিকেকমেন চেষ্টা করুন।


0

কো-ক্লাস্টারিং এমন একটি উত্তর যা আমি মনে করি। তবে আমি এখানে বিশেষজ্ঞ নই। কো-ক্লাস্ট্রিং নবজাতক পদ্ধতি নয়, তাই আপনি আর-তে কিছু আলগোসগুলি খুঁজে পেতে পারেন, উইকি দেখায় যে ধারণাগুলি ভাল উপায়ে। আর একটি পদ্ধতি যা মানসিকভাবে জড়িত নয় তা হ'ল গ্রাফ বিভাজন (তবে আমি দেখতে পাচ্ছি যে গ্রাফটি বিচ্ছিন্ন হবে না, গ্রাফ বিভাজন কার্যকর হবে যদি আপনার ম্যাট্রিক্সের মানগুলি = সর্বোচ্চ দূরত্ব = নোডগুলির মধ্যে কোনও মিল না থাকে) দ্বারা প্রভাবিত হয়।


0

অফিফিনিটি প্রোপাগেশন দেখুন, এই কৌশলটি ইনপুট হিসাবে মিল ম্যাট্রিক্স হিসাবে গ্রহণ করে এবং প্রতিটি ক্লাস্টারের জন্য একটি প্রতিনিধি উদাহরণ সহ একটি অনুকূল সংখ্যক ক্লাস্টার উত্পাদন করে।


2
আপনি কি এর উপর প্রসারিত করতে পারেন এবং ব্যাখ্যা করতে পারেন কীভাবে এই পদ্ধতিটি এই ক্ষেত্রে সহায়তা করে?
অ্যান্ডি

0

প্রথমে https://math.stackexchange.com/a/423898 এর মাধ্যমে দূরত্বের ম্যাট্রিক্সকে একটি সমন্বিত ম্যাট্রিক্সে রূপান্তর করুন তবে আপনি সহজেই যে কোনও বিদ্যমান ক্লাস্টারিং অ্যালগরিদমকে কার্যকরভাবে ব্যবহার করতে সক্ষম হবেন।


0

আপনি ন্যূনতম বিস্তৃত গাছগুলি সন্ধানের জন্যও কৃস্কাল অ্যালগরিদম ব্যবহার করতে পারেন, তবে তিনটি ক্লাস্টার পাওয়ার সাথে সাথে শেষ হবে। আমি এইভাবে চেষ্টা করেছি এবং এটি আপনার উল্লিখিত গুচ্ছগুলি তৈরি করে: {এবিসিডি}, {ইএফজিএইচ} এবং {আইজেকেএল}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.