আমাদের কেন নিকটতম প্রতিবেশীদের শ্রেণিবদ্ধের জন্য ফিট করা দরকার?


11

যেমনটি আমি বুঝতে পেরেছি, কে-এনএন একটি অলস শিক্ষণার্থী অ্যালগরিদম এবং এটির প্রশিক্ষণের একটি পর্বের প্রয়োজন নেই। তাহলে আমাদের .fit()স্কেলার্ন ব্যবহার করার দরকার কেন এবং যখন আমরা এটি ব্যবহার করি তখন কী ঘটে?

উত্তর:


9

ধারণাগত স্তরে

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

বাস্তবায়ন স্তরে

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

নির্বাচন করা হচ্ছে


11

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

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

এ খুঁজছি উৎস , আপনি দেখতে পারেন যে বিভিন্ন পদ্ধতিতে scikit শিখতে বাস্তবায়ন করা হয়েছে। এবং কিছু গবেষণা আছে , যা এই নিকটতম প্রতিবেশী প্রশ্নগুলির উন্নতি করে চলেছে।


5

অন্যান্য উত্তরদাতারা যে পয়েন্টগুলি করেছেন তা অবশ্যই বৈধ এবং আকর্ষণীয়, যদিও আমি কঠোরভাবে সফ্টওয়্যার ইঞ্জিনিয়ারিং পয়েন্ট-ভিউ থেকে আরও একটি বিষয় উল্লেখ করতে চাই:

এটি তাদের API এর সাথে সামঞ্জস্যপূর্ণ করতে

স্ক্যালারিনের প্রাক্কলনকারীদের অন্যান্য জিনিসের মধ্যেও এমন একটি fitপদ্ধতি থাকা উচিত যা এক বা দুটি অ্যারে-পছন্দ পছন্দ করে (এটি কোনও তদারকি / নিরীক্ষণযোগ্য অনুমানক কিনা তার উপর নির্ভর করে) এবং বাস্তবায়ন-নির্দিষ্ট বিশদগুলির একটি সংখ্যা ( উত্স )।

সুতরাং যদি Knn এর fitপদ্ধতিটি একেবারে কিছুই না করে তবে এটি সম্ভবত এখনও বিদ্যমান থাকবে কারণ নন একটি অনুমানকারী এবং স্ক্লার্নের বিকাশকারী এবং সেই সাথে তারা যে কোডটি অবদান রাখে, অনুমানকারীদের একটি fitপদ্ধতি আছে বলে আশা করে ।

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