আমি মূলত ভাষার stats
প্যাকেজে কার্যকর হওয়া বিভিন্ন কে-মানে ক্লাস্টারিং অ্যালগরিদমগুলি বোঝার চেষ্টা করছি R
।
আমি লয়েডের অ্যালগরিদম এবং ম্যাককুইনের অনলাইন অ্যালগরিদম বুঝতে পারি। আমি তাদের বোঝার উপায়টি নিম্নরূপ:
লয়েডের অ্যালগরিদম:
প্রাথমিকভাবে 'কে' র্যান্ডম পর্যবেক্ষণগুলি বেছে নেওয়া হয় যা 'কে' ক্লাস্টারের সেন্ট্রয়েড হিসাবে কাজ করবে। তারপরে সেন্ট্রয়েডগুলি একত্রিত হওয়া পর্যন্ত নিম্নলিখিত পদক্ষেপগুলি পুনরাবৃত্তিতে ঘটে।
- প্রতিটি পর্যবেক্ষণ এবং নির্বাচিত সেন্ট্রয়েডের মধ্যে ইউক্লিডিয়ান দূরত্ব গণনা করা হয়।
- প্রতিটি সেন্ট্রয়েডের নিকটতম পর্যবেক্ষণগুলিকে 'কে' বালতিতে ট্যাগ করা হয়।
- প্রতিটি বালতিতে সমস্ত পর্যবেক্ষণের গড়টি নতুন সেন্ট্রয়েড হিসাবে কাজ করে।
- নতুন সেন্ট্রয়েডগুলি পুরানো সেন্ট্রয়েডগুলিকে প্রতিস্থাপন করে এবং যদি পুরনো এবং নতুন সেন্ট্রয়েডগুলি রূপান্তর না করে তবে পুনরাবৃত্তিটি 1 ধাপে ফিরে যায়।
রূপান্তর করার শর্তগুলি নিম্নরূপ: পুরাতন এবং নতুন সেন্ট্রয়েডগুলি হুবহু একরকম, সেন্ট্রয়েডের মধ্যে পার্থক্যটি ছোট (10 ^ -3 এর ক্রমের) বা সর্বোচ্চ সংখ্যা (10 বা 100) পৌঁছেছে।
ম্যাককুইনের অ্যালগরিদম:
এটি একটি অনলাইন সংস্করণ যেখানে প্রথম 'কে' উদাহরণগুলি সেন্ট্রয়েড হিসাবে বেছে নেওয়া হয়েছে।
তারপরে সেন্ট্রয়েড সেই উদাহরণের সবচেয়ে কাছের অবস্থার উপর নির্ভর করে প্রতিটি উদাহরণ বালতিতে রাখা হয়। সম্পর্কিত সেন্ট্রয়েড পুনরায় গণনা করা হয়।
প্রতিটি উদাহরণ যথাযথ বালতিতে স্থাপন না করা পর্যন্ত এই পদক্ষেপটি পুনরাবৃত্তি করুন।
এই অ্যালগরিদমের কেবল একটি পুনরাবৃত্তি রয়েছে এবং লুপটি 'x' উদাহরণগুলির জন্য চলে
হার্টিগান-ওয়াং অ্যালগরিদম:
- এলোমেলো বালতিগুলিতে সমস্ত পয়েন্ট / দৃষ্টান্ত নির্ধারণ করুন এবং সংশ্লিষ্ট সেন্ট্রয়েড গণনা করুন।
- প্রথম উদাহরণ থেকে শুরু করে নিকটতম সেন্ট্রয়েড সন্ধান করুন এবং সেই বালতিটি আশ্বাস দিন। যদি বালতিটি পরিবর্তিত হয় তবে নতুন সেন্ট্রয়েডগুলি যেমন নতুন অর্পিত বালতির সেন্ট্রয়েড এবং পুরাতন বালতি অ্যাসাইনমেন্টের সেন্ট্রয়েড পুনরায় গণনা করুন কারণ এটি দুটি সেন্ট্রয়েড যা পরিবর্তনের দ্বারা প্রভাবিত
- সমস্ত পয়েন্ট লুপ এবং নতুন সেন্ট্রয়েড পান।
- পয়েন্ট 2 এবং 3 এর দ্বিতীয় পুনরাবৃত্তি করুন যা ক্লিন-আপ ক্রিয়াকলাপ সম্পাদন করে এবং বালতিগুলি সঠিক করতে স্ট্রে পয়েন্টগুলি পুনরায় সাইন করে।
সুতরাং আমরা রূপান্তর ফলাফল দেখার আগে এই অ্যালগরিদম 2 টি পুনরাবৃত্তি সম্পাদন করে।
এখন, আমি নিশ্চিত নই যে হারটিগান-ওয়াং অ্যালগরিদমের 4 পয়েন্টে আমি যা মনে করি তা হল অ্যালগোরিদমের সঠিক পদ্ধতি। আমার প্রশ্ন, হারটিগান-ওয়াংয়ের জন্য নিম্নলিখিত পদ্ধতিটি যদি কে-মানে বাস্তবায়নের সঠিক পদ্ধতি হয়? এই পদ্ধতির জন্য কি কেবল দুটি পুনরাবৃত্তি রয়েছে? যদি না হয় তবে কনভার্সনের শর্ত কী (কখন থামবে)?
আমি বুঝতে পারছি আরও একটি সম্ভাব্য প্রয়োগের ব্যাখ্যা।
- এলোমেলো বালতিগুলিতে সমস্ত পয়েন্ট / দৃষ্টান্ত নির্ধারণ করুন এবং সংশ্লিষ্ট সেন্ট্রয়েড গণনা করুন।
- প্রথম উদাহরণ থেকে শুরু করে নিকটতম সেন্ট্রয়েড সন্ধান করুন এবং সেই বালতিটি বরাদ্দ করুন। যদি বালতিটি পরিবর্তিত হয় তবে নতুন সেন্ট্রয়েডগুলি অর্থাৎ নতুন বরাদ্দ বালতির সেন্ট্রয়েড এবং পুরাতন বালতি অ্যাসাইনমেন্টের সেন্ট্রয়েডকে পুনরায় গণনা করুন কারণ এটি দুটি সেন্ট্রয়েড যা পরিবর্তনের দ্বারা প্রভাবিত হয়।
- একবার কোনও পয়েন্টের জন্য বালতিতে পরিবর্তন আসার পরে, প্রথম নজরে ফিরে যান এবং আবার পদক্ষেপগুলি পুনরাবৃত্তি করুন।
- সমস্ত দৃষ্টান্ত পুনরাবৃত্ত হলে পুনরাবৃত্তিটি শেষ হয় এবং বিন্দুগুলির কোনওটিই বালতি পরিবর্তন করে না।
এই উপায়ে অনেকগুলি পুনরাবৃত্তি রয়েছে যা ডেটাসেটের শুরু থেকে বারবার শুরু হয় এবং যখনই কোনও উদাহরণ বালতি পরিবর্তন করে।
যে কোনও ব্যাখ্যা সহায়ক হবে এবং দয়া করে আমাকে জানান যে আমি যদি এই পদ্ধতির কোনওটির জন্য আমার বোঝাপড়াটি ভুল করে থাকি।