কে-এনএন গণনা জটিলতা


18

নির্দোষ অনুসন্ধানের পদ্ধতির (কেডির গাছ বা সিমালার নেই) কে- এনএন অ্যালগরিদমের সময় জটিলতা কী ?

হাইপারপ্যারামিটার কে বিবেচনা করে আমি এর সময়ের জটিলতায় আগ্রহী । আমি বিপরীত উত্তর পেয়েছি:

  1. ও (এনডি + এনএ), যেখানে এন হ'ল প্রশিক্ষণের সেটগুলির কার্ডিনালিটি এবং প্রতিটি নমুনার মাত্রা ডি । [1]

  2. O (ndk), যেখানে আবার n হ'ল প্রশিক্ষণের সেটগুলির মূল পরিচয় এবং প্রতিটি নমুনার মাত্রা d । [2]

[1] http://www.csd.uwo.ca/courses/CS9840a/ লেকচার 2_knn.pdf (পৃষ্ঠা 18/20)

[২] http://www.cs.haifa.ac.il/~rita/ML_course/lectures/KNN.pdf (পৃষ্ঠা 18/31)

উত্তর:


20

ধরে নেওয়া হ'ল k স্থির হয়েছে (যেমন উভয় সংযুক্ত বক্তৃতা রয়েছে), তারপরে আপনার অ্যালগরিদমিক পছন্দগুলি নির্ধারণ করবে যে আপনার গণনা O(nd+kn) রানটাইম বা O(ndk) রানটাইম নেয় কিনা ।

প্রথমে আসুন একটি O(nd+kn) রানটাইম অ্যালগরিদম বিবেচনা করুন:

  • আরম্ভ selectedi=0 সব পর্যবেক্ষণের জন্য i ট্রেনিং সেটে এমন সব
  • প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণ , গণনা d i s t i এর জন্য , নতুন পর্যবেক্ষণ থেকে প্রশিক্ষণের সেট পর্যবেক্ষণের দূরত্ব iidistii
  • জন্য থেকে k : লুপ সব ট্রেনিং সেট পর্যবেক্ষণ মাধ্যমে সূচক নির্বাচন আমি ক্ষুদ্রতম সঙ্গে আমি গুলি টন আমি মান এবং যার জন্য গুলি টি আমি = 0S e l e c t e d i = 1 সেট করে এই পর্যবেক্ষণটি নির্বাচন করুন ।j=1kidistiselectedi=0selectedi=1
  • নির্বাচিত সূচকগুলি ফেরত দিনk

প্রতিটি দূরত্বের গণনার জন্য রানটাইম প্রয়োজন হয়, সুতরাং দ্বিতীয় ধাপে ( এন ডি ) রানটাইম প্রয়োজন। তৃতীয় ধাপে প্রতিটি পুনরাবৃত্তির জন্য, আমরা প্রশিক্ষণ সেট পর্যবেক্ষণগুলি লুপ করে ( এন ) কাজটি সম্পাদন করি , সুতরাং সামগ্রিক পদক্ষেপে ( এন কে ) এর কাজ প্রয়োজন। প্রথম এবং চতুর্থ পদক্ষেপে কেবল ( এন ) এর কাজ প্রয়োজন, সুতরাং আমরা একটি ( এন ডি + কে এন ) রানটাইম পাই ।O(d)O(nd)O(n)O(nk)O(n)O(nd+kn)

এখন, আসুন একটি রানটাইম অ্যালগরিদম বিবেচনা করুন:O(ndk)

  • আরম্ভ সব পর্যবেক্ষণের জন্য আমি ট্রেনিং সেটে এমন সবselectedi=0i
  • জন্য থেকে k : লুপ সব ট্রেনিং সেট পর্যবেক্ষণ দিয়ে গনা দূরত্ব নির্বাচিত ট্রেনিং সেট পর্যবেক্ষণ করুন এবং নতুন পর্যবেক্ষণ মধ্যে। সূচক নির্বাচন করুন আমি ক্ষুদ্রতম সঙ্গে যে মানের জন্য গুলি টি আমি = 0S e l e c t e d i = 1 সেট করে এই পর্যবেক্ষণটি নির্বাচন করুন ।j=1kdidselectedi=0selectedi=1
  • নির্বাচিত সূচকগুলি ফেরত দিনk

দ্বিতীয় ধাপে প্রতিটি পুনরাবৃত্তির জন্য, আমরা নতুন পর্যবেক্ষণ এবং প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণের মধ্যে দূরত্ব গণনা করি, যা পুনরাবৃত্তির জন্য কাজ প্রয়োজন এবং সুতরাং সামগ্রিকভাবে ( এন ডি কে ) কাজ করে।O(nd)O(ndk)

দুটি অ্যালগরিদমের মধ্যে পার্থক্যটি হ'ল প্রথম সংস্থান এবং দূরত্বগুলি সংরক্ষণ করে ( অতিরিক্ত মেমরির প্রয়োজন হয়), তবে দ্বিতীয়টি তা করে না। যাইহোক, প্রদত্ত যে আমরা ইতিমধ্যে সমগ্র ট্রেনিং সেট সংরক্ষণ প্রয়োজন হে ( ) মেমরি, এবং সেইসাথে গুলি টি ভেক্টর, প্রয়োজন হে ( ) স্টোরেজ, দুই আলগোরিদিম স্টোরেজ এসিম্পটোটিকভাবে হয় একই। ফলস্বরূপ, কে > 1 এর জন্য আরও ভাল অ্যাসেম্পটোটিক রানটাইম প্রথম অ্যালগরিদমকে আরও আকর্ষণীয় করে তোলে।O(n)O(nd)selectedO(n)k>1

এটি লক্ষণীয় যে অ্যালগোরিদমিক উন্নতি ব্যবহার করে একটি রানটাইম পাওয়া সম্ভব :O(nd)

  • প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণ , গণনা d i s t i এর জন্য , নতুন পর্যবেক্ষণ থেকে প্রশিক্ষণের সেট পর্যবেক্ষণের দূরত্ব iidistii
  • ( এন ) রানটাইমের মধ্যে কে টি এইচ ছোটতম দূরত্ব গণনা করার জন্য কুইকসিলিট অ্যালগরিদম চালানkthO(n)
  • সমস্ত সূচকগুলি গণনা করা ছোটতম দূরত্বে আর বড় নয়kth

এই পদ্ধতির অকার্যকর অ্যারে সবচেয়ে ক্ষুদ্রতম মান সন্ধানের জন্য দক্ষ পদ্ধতির উপস্থিতি এই সত্যটির সুযোগ নেয় ।kth


1
দুর্দান্ত উত্তর এবং আমি বিশেষত ব্যবহারের দিকে পরামর্শটি পছন্দ করি quickselect
usεr11852

আরও একটি প্রশ্ন: তৃতীয় বিকল্পের জন্য আমি বিশ্বাস করি যে সময়ের জটিলতাটি O (এনডি + কে) হওয়া উচিত, কারণ আপনার কাছে এখনও ভবিষ্যদ্বাণী নির্গমন করতে কে-নিকটতম প্রতিবেশীদের মধ্যে সর্বাধিক সাধারণ লেবেলটি গণনা করতে হবে, তাই না?
ড্যানিয়েল লোপেজ

@ ড্যানিয়েল যেহেতু , ( এন ডি + কে ) ( এন ডি ) এর সমান । knO(nd+k)O(nd)
josliber

শেষবার আমি আপনাকে বিরক্ত করেছি: আমি যে কে- এনএন-র পরিবর্তিত সংস্করণের গণনাগত জটিলতা নির্ধারণ করার চেষ্টা করছি, আমি নিম্নলিখিতটি পেয়েছি: হে (এনডি + এনডি / পি) সংজ্ঞা অনুসারে যেখানে এন , ডি এবং পি সংখ্যার চেয়ে বড় হয় শূন্য। আমি ও (এনডি) এ কি সহজ করতে পারি ?
ড্যানিয়েল লোপেজ

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