কে-ই মানে হ'ল একটি মানহীন নিরীক্ষণযোগ্য ক্লাস্টারিং অ্যালগরিদম, যা "পয়েন্ট" এবং কয়েকটি ক্লাস্টার কে দিয়ে থাকে, প্রতিটি "পয়েন্ট" কে কে ক্লাস্টারের একটিতে নির্ধারিত করে।
কে-মানে সিউডো-কোড
নোট করুন যে কে-মাধ্যমের অনেকগুলি রূপ রয়েছে। নীচে আমি যে অ্যালগরিদম বর্ণনা করছি তা আপনাকে প্রয়োগ করতে হবে। আপনার অ্যালগরিদমের কিছুটা ভিন্নতা থাকতে পারে বা বিল্ট-ইনগুলি ব্যবহার করা যেতে পারে আপনি যতক্ষণ না এই অ্যালগরিদমকে একই প্রাথমিক পয়েন্টগুলি দিয়েছিলেন তেমন ফল পাবেন।
এই চ্যালেঞ্জের মধ্যে, সমস্ত ইনপুটগুলি 2 ডি প্লেনে পয়েন্ট হবে (প্রতিটি পয়েন্টটি এর সমন্বয়কারী দ্বারা x এবং y তে প্রতিনিধিত্ব করা হবে)।
Inputs: K, the number of clusters
P, the set of points
Choose K points of P uniformly at random
Each chosen point is the initial centroid of its cluster
Loop:
For each point in P:
Assign to the cluster whose centroid is the nearest (Euclidean distance)
In case of a tie, any of the tied cluster can be chosen
Recompute the centroid of each cluster:
Its x coordinate is the average of all x's of the points in the cluster
Its y coordinate is the average of all y's of the points in the cluster
Until the clusters don't change from one iteration to the next
Output: the set of clusters
ইনপুট এবং আউটপুট
- আপনি কে এবং পি মাধ্যমে নিতে পারেন
STDIN
, বা একটি ফাংশন যুক্তি হিসাবে, ইত্যাদি। - পি এবং পি এর পয়েন্টগুলি আপনার পছন্দ মতো ভাষাতে সেট / তালিকার জন্য প্রাকৃতিক যে কোনও কাঠামো ব্যবহার করে প্রতিনিধিত্ব করা যেতে পারে।
- কে একটি কঠোর ইতিবাচক পূর্ণসংখ্যা।
- আপনি ধরে নিতে পারেন ইনপুটগুলি বৈধ।
- পি তে সর্বদা কমপক্ষে কে পয়েন্ট থাকবে
- আপনি ক্লাস্টারগুলিকে আউটপুট করতে পারেন
STDOUT
, কোনও ফাংশন থেকে তাদের ফিরিয়ে দিতে পারেন etc. - গুচ্ছগুলির ক্রম এবং গুচ্ছগুলির ভিতরে ক্রমটি গুরুত্বহীন। - আপনি ক্লাস্টারগুলিকে উপস্থাপন করতে পয়েন্টের গ্রুপগুলি ফিরে আসতে পারেন, বা প্রতিটি পয়েন্ট ক্লাস্টারের জন্য সনাক্তকারী হিসাবে লেবেলযুক্ত (উদাহরণস্বরূপ একটি পূর্ণসংখ্যা)।
পরীক্ষার মামলা
যেহেতু ফলস্বরূপ ক্লাস্টাররা প্রাথমিকভাবে কোন পয়েন্টগুলি বেছে নেওয়া হয়েছিল তার উপর নির্ভর করে, আপনি সবাই একই ফলাফল (বা আপনি যখন প্রতিবার আপনার কোড চালাবেন একই ফলাফল) পেতে না পারেন।
সুতরাং, কেবল আউটপুটটিকে উদাহরণস্বরূপ আউটপুট হিসাবে গ্রহণ করুন।
Input:
K = 1
P = [[1,2.5]]
Output:
[[[1,2.5]]]
Input:
K = 3
P = [[4,8], [15,16], [23,42], [-13.37,-12.1], [666,-666]]
Output:
[[[666,-666]],[[-13.37,-12.1],[4,8]],[[15,16],[23,42]]]
Input:
K = 2
P = [[1,1], [1,1], [1,1]]
Output:
[[[1,1]],[[1,1],[1,1]]]
স্কোরিং
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins
1
সমস্ত পয়েন্টের লেবেল থাকে , দ্বিতীয়টির সমস্ত পয়েন্টের লেবেল থাকে 2
ইত্যাদি)
K=2, P = [[1,1], [1,1], [1,1]]
।