মেশিন লার্নিং (Machine Learning)-এ আমরা অনেক সময় decision tree বা random forest ব্যবহার করি। তবে এক ধাপ এগিয়ে একটি আরও দ্রুত, শক্তিশালী এবং স্ট্যাবল টেকনিক হলো — এক্সট্রা ট্রিস ক্লাসিফায়ার (ExtraTrees Classifier)। এটি একটি বেশ জনপ্রিয় এনসেম্বল লার্নিং (Ensemble Learning) Algorithm, যা classification-এর কাজ খুব ভালোভাবে করে। যারা মেশিন লার্নিং শিখছেন, তাদের জন্য এক্সট্রা ট্রিস ক্লাসিফায়ার একটি গুরুত্বপূর্ণ টপিক। চলুন, ধাপে ধাপে এটি সম্পর্কে বিস্তারিত জেনে নিই।
 

ExtraTreesClassifier কী?

ExtraTrees Classifier হলো একটি এনসেম্বল লার্নিং অ্যালগরিদম, যা Extremely Randomized Trees এর সংক্ষিপ্ত রূপ। এটি র‍্যান্ডম ফরেস্ট (Random Forest) এর মতো কাজ করে, কিন্তু কিছু গুরুত্বপূর্ণ পার্থক্য আছে। এক্সট্রা ট্রিস ক্লাসিফায়ার মূলত একাধিক ডিসিশন ট্রি (Decision Tree) তৈরি করে এবং তাদের সম্মিলিত ফলাফলের উপর ভিত্তি করে ভবিষ্যৎবাণী (prediction) করে।

এর প্রধান বৈশিষ্ট্য হলো, এটি যখন প্রতিটি ডিসিশন ট্রি তৈরি করে, তখন ডেটা স্যাম্পলিং এবং ফিচার সিলেকশনে আরও বেশি র‍্যান্ডমনেস (randomness) যোগ করে। র‍্যান্ডম ফরেস্ট যেখানে ডেটাসেটের একটি সাবসেট (bootstrap sample) ব্যবহার করে এবং প্রতিটি স্প্লিটের জন্য বেস্ট ফিচার খুঁজে বের করে, সেখানে এক্সট্রা ট্রিস (ExtraTrees) ক্লাসিফায়ার সম্পূর্ণ ডেটাসেট ব্যবহার করে এবং প্রতিটি স্প্লিটের জন্য র‍্যান্ডমলি কিছু ফিচার নির্বাচন করে তাদের মধ্যে থেকে সেরা স্প্লিটটি বেছে নেয়।
 

পাইথন ব্যবহার করে এক্সট্রা ট্রিস ক্লাসিফায়ার উদাহরণ

আমরা Scikit-learn লাইব্রেরি ব্যবহার করে ExtraTreesClassifier এর একটি সাধারণ উদাহরণ দেখব। প্রথমে, প্রয়োজনীয় লাইব্রেরিগুলো ইম্পোর্ট করি:

এই উদাহরণে, আমরা n_estimators=100 সেট করেছি, যার অর্থ মডেলটি ১০০টি ডিসিশন ট্রি ব্যবহার করে ভবিষ্যৎবাণী করবে।
 

অ্যালগরিদম তৈরির প্রক্রিয়া (ধাপে ধাপে)

এক্সট্রা ট্রিস ক্লাসিফায়ার অ্যালগরিদম নিম্নলিখিত ধাপে কাজ করে:
১. ডেটা ইনিশিয়ালাইজেশন (Data Initialization):

  • ট্রেনিং ডেটাসেটটি সরাসরি ব্যবহার করা হয়। র‍্যান্ডম ফরেস্টের মতো এখানে বুটস্ট্র্যাপ স্যাম্পলিং (bootstrap sampling) হয় না, অর্থাৎ প্রতিটি ট্রির জন্য পুরো ডেটাসেট ব্যবহার করা হয়।

২. একাধিক ডিসিশন ট্রি তৈরি (Build Multiple Decision Trees):

  • নির্দিষ্ট সংখ্যক ডিসিশন ট্রি (n_estimators) তৈরি করা হয়। প্রতিটি ট্রি স্বাধীনভাবে তৈরি হয়।

৩. ফিচার সিলেকশন এবং স্প্লিটিং (Feature Selection and Splitting):

  • র‍্যান্ডম ফরেস্টের সাথে প্রধান পার্থক্য এখানেই। যখন একটি ডিসিশন ট্রি নোড বিভাজন (node splitting) করার জন্য সেরা ফিচারটি নির্বাচন করে, তখন ExtraTreesClassifier নিম্নলিখিত কাজগুলো করে:
    • এটি প্রথমে র‍্যান্ডমলি কিছু সংখ্যক ফিচার নির্বাচন করে (সাধারণত max_features প্যারামিটার দ্বারা নিয়ন্ত্রিত)।
    • এরপর, নির্বাচিত ফিচারগুলোর মধ্যে থেকে র‍্যান্ডমলি একটি থ্রেশহোল্ড (threshold) ভ্যালু তৈরি করে প্রতিটি ফিচারের জন্য।
    • এই র‍্যান্ডমলি তৈরি করা থ্রেশহোল্ডগুলোর মধ্যে থেকে সেরা স্প্লিটটি (অর্থাৎ যা ইনফরমেশন গেইন বা জিনি ইম্পিউরিটি সবচেয়ে বেশি কমায়) নির্বাচন করে।
  • এটি র‍্যান্ডম ফরেস্টের মতো প্রতিটি ফিচারের জন্য সেরা স্প্লিট ভ্যালু খুঁজে বের করার চেষ্টা করে না, বরং র‍্যান্ডম থ্রেশহোল্ড ব্যবহার করে। এই অতিরিক্ত র‍্যান্ডমনেস অ্যালগরিদমটিকে আরও দ্রুত এবং কিছু ক্ষেত্রে আরও শক্তিশালী করে তোলে।

৪. ট্রি তৈরি এবং প্রশিক্ষণ (Tree Construction and Training):

  • এই র‍্যান্ডমাইজড স্প্লিটিং প্রক্রিয়াটি প্রতিটি ট্রির পাতা পর্যন্ত (leaf nodes) চলতে থাকে যতক্ষণ না একটি নির্দিষ্ট গভীরতা (max_depth) বা একটি নির্দিষ্ট সংখ্যক স্যাম্পল (min_samples_leaf) পৌঁছে যায়।

৫. চূড়ান্ত ভবিষ্যৎবাণী (Final Prediction):

  • ক্লাসিফিকেশনের ক্ষেত্রে, প্রতিটি ডিসিশন ট্রি একটি ভবিষ্যৎবাণী করে। চূড়ান্ত ভবিষ্যৎবাণীটি প্রতিটি ট্রির ভবিষ্যৎবাণীর ভোটের মাধ্যমে (majority vote) নির্ধারিত হয়। অর্থাৎ, যে ক্লাসটি সর্বাধিক ট্রি দ্বারা ভবিষ্যদ্বাণী করা হয়, সেটিই চূড়ান্ত আউটপুট হয়।

 

এক্সট্রা ট্রিস ক্লাসিফায়ার কীভাবে কাজ করে?

ExtraTreesClassifier কে এমন একটি দল হিসেবে কল্পনা করা যেতে পারে, যেখানে প্রত্যেকে সমস্যার সমাধানের জন্য নিজেদের মতো করে সিদ্ধান্ত নেয়, কিন্তু তাদের সিদ্ধান্ত নেওয়ার প্রক্রিয়াটিতে কিছু র‍্যান্ডমনেস থাকে।

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

এই অতিরিক্ত র‍্যান্ডমনেস ওভারফিটিং (Overfitting) কমাতে সাহায্য করে এবং মডেলকে আরও শক্তিশালী করে তোলে।
 

এক্সট্রা ট্রিস ক্লাসিফায়ার সুবিধা ও অসুবিধা

সুবিধা:
  • ওভারফিটিং প্রতিরোধ: র‍্যান্ডমাইজড ফিচার সিলেকশন এবং থ্রেশহোল্ড স্প্লিটিং এর কারণে ExtraTreesClassifier ওভারফিটিং এর প্রতি তুলনামূলকভাবে কম সংবেদনশীল।
  • কম্পিউটেশনালি দ্রুত: র‍্যান্ডম স্প্লিট থ্রেশহোল্ড ব্যবহারের কারণে এটি র‍্যান্ডম ফরেস্টের তুলনায় দ্রুত ট্রি তৈরি করতে পারে, কারণ এটি প্রতিটি স্প্লিটের জন্য সেরা থ্রেশহোল্ড খুঁজতে সময় নষ্ট করে না।
  • উচ্চ নির্ভুলতা: এটি প্রায়শই উচ্চ নির্ভুলতা অর্জন করে, বিশেষ করে জটিল ডেটাসেটের জন্য।
  • ফিচার ইম্পর্টেন্স (Feature Importance): এটি ডেটাসেটের কোন ফিচারগুলো বেশি গুরুত্বপূর্ণ, তা নির্ধারণ করতে সাহায্য করে।
অসুবিধা:
  • ব্যাখ্যা করা কঠিন (Less Interpretable): একটি এনসেম্বল মডেল হওয়ায়, একটি একক ডিসিশন ট্রির মতো এর ভেতরের কার্যপ্রণালী ব্যাখ্যা করা কঠিন।
  • র‍্যান্ডমনেস বাড়ানো: অতিরিক্ত র‍্যান্ডমনেসের কারণে কখনও কখনও এটি র‍্যান্ডম ফরেস্টের চেয়ে খারাপ পারফর্ম করতে পারে, যদি ডেটার স্ট্রাকচার খুব শক্তিশালী হয় এবং র‍্যান্ডমনেস মডেলকে মূল প্যাটার্ন শিখতে বাধা দেয়।
  • প্যারামিটার টিউনিং: n_estimators, max_features এর মতো প্যারামিটারগুলো সঠিকভাবে টিউন করা প্রয়োজন।

 

কখন এক্সট্রা ট্রিস ক্লাসিফায়ার ব্যবহার করবেন?

ExtraTreesClassifier সাধারণত নিম্নলিখিত পরিস্থিতিতে ব্যবহার করা হয়:

  • যখন উচ্চ নির্ভুলতার প্রয়োজন: যদি আপনার ক্লাসিফিকেশন বা রিগ্রেশন সমস্যার জন্য উচ্চ নির্ভুলতা একটি গুরুত্বপূর্ণ বিষয় হয়।
  • যখন ডেটাসেট বড় এবং ফিচার সংখ্যা বেশি: এটি বড় ডেটাসেটে দক্ষতার সাথে কাজ করতে পারে এবং উচ্চ-মাত্রার (high-dimensional) ডেটার জন্য উপযোগী।
  • যখন ওভারফিটিং একটি উদ্বেগের বিষয়: এর অন্তর্নিহিত র‍্যান্ডমনেস ওভারফিটিং কমাতে সাহায্য করে।
  • যখন দ্রুত মডেল তৈরি করতে চান: যদি ট্রেনিং সময় একটি সীমাবদ্ধতা হয়, তবে র‍্যান্ডম ফরেস্টের চেয়ে এটি দ্রুত কাজ করতে পারে।
  • যখন আপনি ফিচার ইম্পর্টেন্স জানতে চান: ExtraTreesClassifier আপনাকে ডেটাসেটের কোন ফিচারগুলো ভবিষ্যৎবাণীর জন্য সবচেয়ে বেশি গুরুত্বপূর্ণ, তা বুঝতে সাহায্য করতে পারে।

 
এক্সট্রা ট্রিস ক্লাসিফায়ার (ExtraTrees) হলো একটি শক্তিশালী, দ্রুত ও কম overfit করা classifier, যা decision tree-এর উপর ভিত্তি করে কাজ করে কিন্তু আরও বেশি randomness যোগ করে। নতুনদের জন্য এটি শেখা খুবই গুরুত্বপূর্ণ কারণ এর মাধ্যমে তারা ensemble learning এর advanced কনসেপ্টগুলো সহজে ধরতে পারবে।

Leave a Comment