কম্পিউটার টিউটোরিয়াল

এনসেম্বেল ক্লাসিফায়ার নির্মাণের পদ্ধতিসমূহ কী?


কনসেপ্ট হলো প্রাথমিক ডেটা থেকে একাধিক ক্লাসিফায়ার তৈরি করা এবং তারপর অজানা উদাহরণ বর্ণনা করার সময় তাদের প্রেডিকশন একত্রিত করা। ক্লাসিফায়ারদের এনসেম্বেল নিচের পদ্ধতিগুলোতে তৈরি করা যায়:

ট্রেনিং সেট ম্যানিপুলেট করে (By manipulating the training set)

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

ইনপুট ফিচার ম্যানিপুলেট করে (By manipulating the input features)

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

ক্লাস লেবেল ম্যানিপুলেট করে (By manipulating the class labels)

এই পদ্ধতি তখন ব্যবহার করা যায় যখন ক্লাসের সংখ্যা পর্যাপ্ত বড়। ট্রেনিং ডেটাকে একটি বাইনারি ক্লাস সমস্যাতে রূপান্তর করা হয় ক্লাস লেবেলগুলোকে র‍্যান্ডমলি দুটি ডিসজয়েন্ট সাবসেটে ভাগ করে, যেমন A0 এবং A1।

যেসব ট্রেনিং ইন্সট্যান্সের ক্লাস লেবেল A0 সাবসেটে পড়ে, সেগুলো ক্লাস 0 হিসেবে লেবেল করা হয়, আর যেগুলো A1-এ পড়ে সেগুলো ক্লাস 1 হিসেবে। রিলেবেলড ইন্সট্যান্সগুলো বেস ক্লাসিফায়ার ট্রেন করার জন্য ব্যবহার করা হয়। ক্লাস-রিলেবেলিং এবং মডেল-বিল্ডিং ধাপ একাধিকবার রিপিট করে, বেস ক্লাসিফায়ারদের একটি এনসেম্বেল প্রাপ্ত হয়।

যখন একটি টেস্ট ইন্সট্যান্স প্রেজেন্ট করা হয়, প্রতিটি বেস ক্লাসিফায়ার Ci তার ক্লাস লেবেল প্রেডিক্ট করে। যদি টেস্ট ইন্সট্যান্স ক্লাস 0 হিসেবে প্রেডিক্ট হয়, তবে A0-এ পড়া সব ক্লাস একটি ভোট পাবে।

লার্নিং অ্যালগরিদম ম্যানিপুলেট করে (By manipulating the learning algorithm)

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

প্রথম তিনটি পদ্ধতি জেনেরিক টেকনিক যেগুলো যেকোনো ক্লাসিফায়ারের জন্য প্রযোজ্য, আর চতুর্থ পদ্ধতি ক্লাসিফায়ারের টাইপের ওপর নির্ভরশীল। বেস ক্লাসিফায়ার পদ্ধতিগুলো.Sequentially (এক পর এক) বা প্যারালেলি (সব একসাথে) তৈরি করা যায়।

প্রথম প্রক্রিয়া হলো প্রাথমিক ডেটা D থেকে একটি ট্রেনিং সেট তৈরি করা। এনসেম্বেল পদ্ধতির টাইপের ওপর ভিত্তি করে, ট্রেনিং সেটগুলো D-র এক্সাক্ট বা সামান্য রূপান্তর। ট্রেনিং সেটের আকার_PRIMARY ডেটার সমান রাখা হয়, কিন্তু ইন্সট্যান্সের ডিস্ট্রিবিউশন সমান নাও হতে পারে অর্থাৎ কিছু ইন্সট্যান্স ট্রেনিং সেটে একাধিকবার আসতে পারে, আর কিছু একবারের মতো আসে না।


  1. C#-এ Thread ক্লাসের মেথড এবং প্রোপার্টিগুলো

  2. C#-এ ক্লাস মেথড (Class Methods) এবং ক্লাস মেম্বার (Class Members) এর পার্থক্য

  3. জাভা ৯-এ Optional ক্লাসে যোগ করা নতুন মেথডগুলো

  4. পাইথন ক্লাসে Getter/Setter মেথডগুলো কী?