আপনি কী-কে-এর একটি বাস্তবায়ন পরীক্ষা করবেন?


11

দাবি অস্বীকার: আমি এই প্রশ্নটি স্ট্যাকওভারফ্লোতে পোস্ট করেছি, তবে আমি ভেবেছিলাম এটি সম্ভবত এই প্ল্যাটফর্মের জন্য উপযুক্ত।

বহুমাত্রিক ডেটা সেটগুলির জন্য আপনি কীভাবে আপনার নিজের কী-মানে বাস্তবায়ন পরীক্ষা করেন?

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

আপনি একটি ভাল ধারণা আছে?

উত্তর:


10

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

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

অবশেষে, কীভাবে আপনার বাস্তবায়নটিকে বেনমার্ক করবেন সে সম্পর্কে প্রচুর অবাধে উপলভ্য ডেটা রয়েছে বা আপনি কোনও ডেডিকেটেড ডেটা সেট অনুকরণ করতে পারেন (যেমন, একটি সীমাবদ্ধ মিশ্রণের মডেলটির মাধ্যমে, মিক্সিম প্যাকেজ দেখুন) see


হাই চি, উত্তরের জন্য ধন্যবাদ। আপনি যখন চান তখন আপনিও একই ধরণের প্রশ্নের উত্তর দিতে পারেন এবং আমিও এটি গ্রহণ করব। => Stackoverflow.com/questions/4280371/...
Framester

(+1) প্রথম অনুচ্ছেদটি খুব তাড়াতাড়ি এই বিষয়টিটিকে কেন্দ্র করে।
শুক্র

6

ফলাফলের দুটি সেটগুলির মধ্যে ম্যাপিংটি গণনা করা সহজ, কারণ আপনি পরীক্ষায় প্রাপ্ত তথ্যটি তিন-টিউপলসের একটি সেট হিসাবে উপস্থাপন করা যেতে পারে: প্রথম উপাদানটি একটি (বহুমাত্রিক) বিন্দু, দ্বিতীয়টি একটি (স্বেচ্ছাসেবী) গুচ্ছ লেবেল আপনার অ্যালগরিদম দ্বারা সরবরাহ করা, এবং তৃতীয়টি একটি (স্বেচ্ছাসেবী) ক্লাস্টার লেবেল একটি রেফারেন্স অ্যালগরিদম দ্বারা সরবরাহ করা। দ্বারা নির্মাণ করুনkkলেবেল জোড়াগুলির জন্য শ্রেণিবদ্ধকরণ সারণী: ফলাফলগুলি যদি একমত হয় তবে এটি একটি ক্রম ছাড় ম্যাট্রিক্সের একাধিক হবে। অর্থাৎ, প্রতিটি সারি এবং প্রতিটি কলামে অবশ্যই একটি ননজারো সেল থাকতে হবে। এটি প্রোগ্রামে একটি সহজ চেক। এই আদর্শ থেকে পৃথক ডেটা পয়েন্টগুলিতে ছোট ছোট বিচ্যুতিগুলি ট্র্যাক করাও সোজা so যাতে আপনি উত্তর দিতে পারেন যে উত্তর দুটি আলাদা হলেও কী আলাদা হয়। আমি চুক্তির পরিসংখ্যানগত ব্যবস্থাগুলি গণনা করতে বিরক্ত করব না: হয় নিখুঁত চুক্তি (অনুমান অবধি) হয় বা হয় না, এবং পরবর্তী ক্ষেত্রে এগুলি কীভাবে ঘটে তা বোঝার জন্য আপনাকে মতবিরোধের সমস্ত বিষয় সন্ধান করতে হবে। ফলাফল হয় হয় সম্মত হয় বা তারা না; মতবিরোধের যে কোনও পরিমাণের জন্য, এমনকি কেবলমাত্র এক পর্যায়ে, যাচাই করা দরকার।

আপনি পরীক্ষার জন্য বিভিন্ন ধরণের ডেটাसेट ব্যবহার করতে চাইতে পারেন: (1) প্রকাশিত কে-মানে ফলাফল সহ ডেটাসেটগুলি প্রকাশিত; (২) সুস্পষ্ট শক্তিশালী ক্লাস্টার সহ সিন্থেটিক ডেটাসেট; (3) কোন সুস্পষ্ট ক্লাস্টারিং সহ সিন্থেটিক ডেটাসেট। (1) আপনি যখনই কোনও গণিত বা পরিসংখ্যান প্রোগ্রাম লিখেন তা ব্যবহার করার জন্য একটি ভাল শৃঙ্খলা । (২) বিভিন্ন উপায়ে করা সহজ, যেমন ক্লাস্টারগুলির কেন্দ্র হিসাবে পরিবেশন করার জন্য কিছু এলোমেলো পয়েন্ট তৈরি করে এবং তারপরে এলোমেলোভাবে ক্লাস্টার কেন্দ্রগুলি অপেক্ষাকৃত কম পরিমাণে স্থানান্তরিত করে পয়েন্ট মেঘ উত্পন্ন করে। (3) কিছু এলোমেলো চেক সরবরাহ করে যা সম্ভাব্যভাবে অপ্রত্যাশিত আচরণগুলি উদঘাটন করে; আবার, এটি একটি ভাল সাধারণ পরীক্ষার শৃঙ্খলা।

তদতিরিক্ত, চূড়ান্ত সমাধানগুলির মধ্যে সীমানায় শুয়েই অ্যালগোরিদমকে চাপ দেয় এমন ডেটাসেটগুলি তৈরি করার বিষয়টি বিবেচনা করুন। এর জন্য সৃজনশীলতা এবং আপনার অ্যালগরিদমের গভীর বোঝার প্রয়োজন হবে (যা সম্ভবত আপনার কাছে রয়েছে!)। যে কোনও ইভেন্টে আমি যাচাই করতে চাই একটি উদাহরণ হ'ল form ফর্মের ভেক্টরগুলির সেটগুলি হবে যেখানে zero কোনও শূন্য উপাদান নয় এমন একটি ভেক্টর এবং ক্রমিক সংহত মান । আমি ভেক্টরগুলির সেটগুলিতে অ্যালগরিদমও পরীক্ষা করতে চাই যা সমবাহিক বহুভুজ গঠন করে। পারেন পরিস্থিতিতে, ক্ষেত্রে যেখানে হয় না এর গুণিতক বিশেষ করে আকর্ষণীয়, যেখানে সহivvi0,1,2,,n1nknহয় কম বেশী । এই পরিস্থিতিতে সাধারণ বিষয়টি হ'ল (ক) তারা সমস্যার সমস্ত মাত্রা ব্যবহার করে, তবুও (খ) সঠিক সমাধানগুলি জ্যামিতিকভাবে সুস্পষ্ট এবং (গ) একাধিক সঠিক সমাধান রয়েছে।k

(ফরম র্যান্ডম সমবাহু বহুভুজ মধ্যে দুই অশূন্য ভেক্টর দিয়ে শুরু দ্বারা মাত্রা এবং এলোমেলোভাবে চয়ন করা হয়েছে। (একটি ভালো উপায় তাদের দেওয়া হয় উপাদান স্বাধীন আদর্শ স্বাভাবিক variates হতে।) Rescale তাদের ইউনিটের দৈর্ঘ্য হবে; আসুন এইগুলিকে এবং call কল করুন formula উপাদানটি সূত্রের মাধ্যমে from থেকে সরানd2uv2dxzxz

w=z(zx)x.

প্রাপ্ত করুন rescaling দ্বারা ইউনিট দৈর্ঘ্য আছে। যদি আপনি চান, অভিন্নভাবে এবং both উভয় এলোমেলোভাবে পুনরুদ্ধার করুন । ভেক্টরগুলি এবং মাত্রার মধ্যে একটি এলোমেলো 2D সাবসপেসের জন্য একটি orthogonal ভিত্তি গঠন করে । একটি সমবাহু বহুভুজ ছেদচিহ্ন এর সেট হিসাবে প্রাপ্ত হয় পূর্ণসংখ্যা হিসাবে থেকে রেঞ্জ মাধ্যমে ।)w x y x y d n cos ( 2 π k / n ) x + sin ( 2 π k / n ) y k 0 n - 1ywxyxydncos(2πk/n)x+sin(2πk/n)yk0n1


(+1) প্রাসঙ্গিক সিন্থেটিক ডেটা তৈরির সম্ভাব্য উপায়গুলি সম্পর্কে আপনার মন্তব্যগুলি অত্যন্ত স্বাগত।
chl

2

একটি খুব সহজ 'নিষ্পাপ' পদ্ধতির হ'ল সহজ সিন্থেটিক ডেটা ব্যবহার করা, যার জন্য প্রতিটি বাস্তবায়নের ফলাফল একই ক্লাস্টারগুলিতে হওয়া উচিত।

পাইথনের উদাহরণ সহ import numpy as np:

test_data = np.zeros((40000, 4))
test_data[0:10000, :] = 30.0
test_data[10000:20000, :] = 60.0
test_data[20000:30000, :] = 90.0
test_data[30000:, :] = 120.0

n_clusters = 4এটির জন্য আপনাকে অনুমতি দেওয়া উচিত[30, 60, 90, 120]


0

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

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