কে-মিনস ক্লাস্টারিং (K-Means Clustering)
ভাবুন তো আপনি একটি হাউস পার্টির (house party) আয়োজন করেছেন এবং সেখানে খাবার রাখার জন্য আপনি ৩টি স্টেশন বা জায়গা রেখেছেন: একটি পিজ্জার জন্য, একটি টাকোর (tacos) জন্য, এবং একটি সুশির (sushi) জন্য। শুরুতে আপনি জাস্ট অনুমান করে খাবারগুলো এমন ৩টি জায়গায় রাখলেন — একটি বসার ঘরে বা লিভিং রুমে, একটি রান্নাঘরে, এবং একটি বারান্দা বা ছাদে।
লোকেরা যখন আসা শুরু করবে, তারা খুব স্বাভাবিকভাবেই তাদের পছন্দের খাবারের চারপাশে ভিড় জমাবে। আপনি খেয়াল করে দেখলেন যে লিভিং রুমে পিজ্জার চারপাশে ২০ জন ভিড় করে আছে, কিন্তু রান্নাঘরে টাকোর কাছে আছে মাত্র ৩ জন — কারণ এখানকার বেশিরভাগ টাকো প্রেমী মানুষগুলো আড্ডা দিচ্ছে ওই বারান্দায় বা ছাদে।
তাই আপনি এবার টাকো স্টেশনটিকে সরিয়ে ওই টাকো-প্রেমী মানুষদের ভিড়ের ঠিক মাঝখানে নিয়ে আসলেন। এরপর লোকেরা আবার এদিক সেদিক সরে যাবে, এবং আপনি আবারও আপনার খাবারগুলোকে একটু একটু করে ঠিক জায়গায় সরিয়ে আনবেন। এভাবে কয়েকবার করার পর, প্রতিটি স্টেশন এমন একটি একেবারে পারফেক্ট বা নিখুঁত জায়গায় চলে আসবে যেখানে সবারই হেঁটে গিয়ে খাবার আনতে সবচেয়ে কম সময় লাগে।
আর এটিই হলো কে-মিনস ক্লাস্টারিং (K-Means clustering)। এতে প্রথমে k সংখ্যক মাঝের পয়েন্ট বা সেন্ট্রয়েড (centroids) বসানো হয়, এরপর প্রতিটি ডেটা পয়েন্টকে তার সবচেয়ে কাছের সেন্ট্রয়েডের সাথে যুক্ত করে দেওয়া হয়। তারপর সেন্ট্রয়েডগুলোকে সেগুলোর সাথে যুক্ত থাকা পয়েন্টগুলোর একেবারে ঠিক মাঝখানে সরিয়ে আনা হয়, এবং যতক্ষণ না আর কিছুই পরিবর্তন হচ্ছে ততক্ষণ পর্যন্ত এই পুরো কাজটি বারবার করা হতে থাকে।
অ্যালগরিদমের প্রতিটি ধাপ (The algorithm, step by step)
- k বেছে নিন (Choose k) — আপনি ঠিক কতগুলো ক্লাস্টার বা ভাগ চান তা ঠিক করুন (আর এটিই হলো মূলত কে-মিনসের বা K-Means-এর সেই "K")
- ইনিশিয়ালাইজ বা শুরু করুন (Initialize) — আপনার ডেটার মাঝে রেন্ডম বা দৈবভাবে k সংখ্যক সেন্ট্রয়েড বসিয়ে দিন
- অ্যাসাইন বা যুক্ত করুন (Assign) — প্রতিটি ডেটা পয়েন্ট তার সবচেয়ে কাছের সেন্ট্রয়েডের ক্লাস্টারের সাথে গিয়ে যুক্ত হবে
- আপডেট বা পরিবর্তন করুন (Update) — এরপর প্রতিটি সেন্ট্রয়েডকে তার সাথে যুক্ত হওয়া সকল পয়েন্টের গড় (mean বা average) অবস্থানে সরিয়ে আনুন
- পুনরাবৃত্তি বা বারবার করতে থাকুন (Repeat) — যতক্ষণ না সেন্ট্রয়েডগুলো আর একদমই না নড়ছে (যাকে কনভার্জেন্স বা convergence বলা হয়) ততক্ষণ পর্যন্ত এই ৩-৪ নং ধাপের পুনরাবৃত্তি করতে থাকুন
আপনি কীভাবে k বেছে নেবেন? (How do you pick k?)
এর জন্য সবচেয়ে জনপ্রিয় পদ্ধতিটি হলো অ্যালবো মেথড (Elbow Method) বা কনুইয়ের পদ্ধতি। এর জন্য k=1, 2, 3, 4... এই মানগুলো ধরে কে-মিনস (K-Means) চালাতে থাকুন এবং এরপর প্রতিটি সেন্ট্রয়েড থেকে তাদের নিজস্ব পয়েন্টগুলোর মোট দূরত্বের (যাকে ইনারশিয়া বা inertia বলা হয়) একটি গ্রাফ বা প্লট (plot) আঁকুন। এই গ্রাফটিকে দেখতে মানুষের বাঁকা হাতের মতো মনে হবে — এখানকার যে বাঁকা অংশ বা "কনুইয়ের" পর থেকে এদের মধ্যকার দূরত্ব খুব একটা কমে না বা উন্নতি করে না, সেটিই হলো আপনার পারফেক্ট বা সঠিক k-এর মান।
অ্যাকশনে কে-মিনস ক্লাস্টারিং (K-Means Clustering in Action)
যেসব সীমাবদ্ধতা বা লিমেটেশন (Limitations)-এর দিকে নজর রাখতে হবে
- আপনাকে অবশ্যই শুরুতে k বেছে নিতে হবে — এই অ্যালগরিদম কখনোই নিজে নিজে ক্লাস্টারের সংখ্যা বের করে দেবে না
- ইনিশিয়ালাইজেশন বা কীভাবে শুরু করছেন তার ওপর অনেক বেশি নাজুক (Sensitive to initialization) — শুরুতে এর অবস্থানগুলো খারাপ হলে আপনি খারাপ ক্লাস্টারও পেতে পারেন (এর সমাধান হলো: এটি বেশ কয়েকবার ভিন্ন ভিন্ন শুরুর অবস্থান থেকে চালানো, যেমন: sklearn-এর
n_init=10) - এটি ধরে নেয় যে ক্লাস্টারগুলো গোল বা গোলাকার (spherical) হবে — এটি অনেক লম্বাটে (elongated) বা অদ্ভুত আকৃতির (oddly-shaped) গ্রুপগুলোর ক্ষেত্রে খুব একটা ভালো কাজ করতে পারে না
- স্কেলের (scale) ব্যাপারে এটি অনেক বেশি নাজুক (Sensitive to scale) — তাই সব সময় কাজ শুরু করার আগে ডেটাগুলো নরমাল (normalize) বা সমান করে নেবেন, নয়তো দূরত্ব হিসেব করার সময় বড় মান থাকা ফিচারগুলোই সেখানে সবচেয়ে বেশি ভূমিকা রাখবে
বাস্তব জীবনের বিভিন্ন ব্যবহার (Real-world uses)
- কাস্টমার সেগমেন্টেশন (Customer segmentation) — কীভাবে মার্কেটিং করলে ভালো কাজ হবে, সেটি ভেবে কাস্টমারদের কেনাকাটার ধরন অনুযায়ী তাদের বিভিন্ন গ্রুপে ভাগ করা
- ইমেজ কম্প্রেশন (Image compression) — কোনো ছবির লক্ষ লক্ষ রঙের থেকে সেগুলোকে কমিয়ে এনে সবচেয়ে দরকারি বা প্রয়োজনীয় k সংখ্যক রঙে রূপান্তর করা
- অ্যানোমালি বা অস্বাভাবিকতা শনাক্ত করা (Anomaly detection) — কোনো সেন্ট্রয়েড থেকে খুব দূরে থাকা পয়েন্টগুলো মূলত কোনো আউটলায়ার (outliers) বা সন্দেহজনক কিছু হতে পারে
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান