DBSCAN, point by point


Dataset
Radius (ε) 30 px
minPts counting the point itself
Run

একটিমাত্র প্রশ্ন।
DBSCAN কখনোই কোনো center হিসাব করে না। এটি একবারে একটি পয়েন্ট নিয়ে শুধু জিজ্ঞেস করে: আমার ε দূরত্বের মধ্যে কি অন্তত minPts সংখ্যক পয়েন্ট আছে? উত্তর হ্যাঁ হলে সেই পয়েন্টটি core, আর cluster সেটির মধ্য দিয়ে বাড়ে — তার বৃত্তের ভিতরের প্রতিটি পয়েন্ট গ্রাস হয়ে যায়, এবং তাদের প্রত্যেককে একই প্রশ্ন করা হয়। উত্তর না হলে পয়েন্টটি noise হিসেবে সরিয়ে রাখা হয়, যদিও পরে কোনো cluster সেটির নাগাল পেয়ে তাকে border পয়েন্ট হিসেবে দাবি করতে পারে। প্রতিটি পয়েন্ট শেষমেশ ঠিক তিনটির একটি হয়ে দাঁড়ায়।

ধরনপরীক্ষাযেভাবে আঁকা হয়
Core নিজেকে ধরে ε-এর মধ্যে অন্তত minPts সংখ্যক পয়েন্ট ভরাট বিন্দু — cluster এর মধ্য দিয়ে বিস্তৃত হয়
Border নিজে ঘনবসতিপূর্ণ নয়, কিন্তু কোনো core পয়েন্টের বৃত্তের ভিতরে ফাঁপা বলয় — cluster-এ যোগ দেয়, কিন্তু কখনো তাকে বাড়ায় না
Noise কোনোটিই নয় ছোট ধূসর ক্রস — এটি কোথাও অন্তর্ভুক্ত নয়

যা চেষ্টা করে দেখার মতো:
1. Two rings, ε = 30। Run চাপুন এবং দেখুন কীভাবে একটি cluster পুরো রিং ধরে হামাগুড়ি দিয়ে এগিয়ে গিয়ে থেমে যায়। এটি সেই ক্ষেত্র যেখানে k-means কোনো k-তেই পারে না, ব্যর্থ হয়।

2. Smiley, ε = 30। তিনটি cluster, অথচ কেউ k সরবরাহ করেনি: দুটি চোখ ও একটি মুখ, লম্বা বাঁকটি এক টুকরোতেই অক্ষত — ঠিক সেই উত্তর যেখানে k-means কোনো k-তেই পৌঁছাতে পারে না।

3. Elongated — দুটি লম্বা সরু cluster, k-means ও GMM পাতায় ব্যবহৃত হুবহু একই পয়েন্ট। পার্থক্যটা কোথায়?