Stacking, Blending এবং Bagging এর ব্যবহার

H2O.ai এর Ensemble Learning - এইচ২ও (H2O) - Machine Learning

402

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


১. Bagging (Bootstrap Aggregating)

Bagging এর ধারণা

Bagging হল একটি এনসেম্বল কৌশল, যেখানে একাধিক বেস লার্নার (ক্লাসিফায়ার বা রিগ্রেসর) তৈরি করা হয় এবং তাদের ফলাফল গড় বা ভোটের মাধ্যমে একটি চূড়ান্ত সিদ্ধান্ত নেওয়া হয়। এটি মূলত মডেলটির ভ্যারিয়েন্স কমানোর জন্য ব্যবহৃত হয়। Bagging সাধারণত ডেকিশন ট্রি বা অন্য কোনো উচ্চ ভ্যারিয়েন্স মডেলগুলির সাথে ব্যবহৃত হয়।

Bagging এর ব্যবহার

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

Bagging এর উদাহরণ

Random Forest হল Bagging এর সবচেয়ে জনপ্রিয় উদাহরণ, যেখানে Decision Trees মডেলগুলির একটি গ্রুপ তৈরি করা হয় এবং তাদের ফলাফল একটি চূড়ান্ত সিদ্ধান্তে একত্রিত করা হয়।

from sklearn.ensemble import RandomForestClassifier

# Random Forest মডেল তৈরি
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

# পূর্বাভাস করা
predictions = model.predict(X_test)

২. Boosting

Boosting এর ধারণা

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

Boosting এর ব্যবহার

  • কম্পোজিট মডেল তৈরি: Boosting-এ, প্রতিটি নতুন মডেল আগের মডেলের ভুলগুলো শোধরানোর চেষ্টা করে। এটি ভ্যারিয়েন্স এবং বায়াস দুটিই কমাতে সাহায্য করে।
  • শ্রেণীবিভাজন শক্তিশালী করা: Boosting কৌশলগুলি প্রায়ই ক্লাসিফিকেশন সমস্যায় ব্যবহৃত হয়, যেমন ইমেজ রিকগনিশন বা টেক্সট ক্লাসিফিকেশন।

Boosting এর উদাহরণ

AdaBoost, Gradient Boosting, এবং XGBoost হল Boosting এর জনপ্রিয় উদাহরণ।

from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier

# AdaBoost মডেল তৈরি
base_model = DecisionTreeClassifier(max_depth=1)
model = AdaBoostClassifier(base_model, n_estimators=50)
model.fit(X_train, y_train)

# পূর্বাভাস করা
predictions = model.predict(X_test)

৩. Stacking

Stacking এর ধারণা

Stacking একটি শক্তিশালী এনসেম্বল কৌশল, যেখানে একাধিক মডেলের আউটপুটকে অন্য একটি মডেলের ইনপুট হিসেবে ব্যবহার করা হয়। এটি একটি স্তরের (level-0) মডেল তৈরি করে এবং তারপর একটি মেটা-লার্নার (level-1) ব্যবহার করে সেরা পারফরম্যান্স তৈরি করে। এটি সাধারণত বেশি বৈচিত্র্য বা ভিন্ন ধরনের মডেলগুলি একত্রিত করতে ব্যবহৃত হয়।

Stacking এর ব্যবহার

  • ভিন্ন ভিন্ন মডেল ব্যবহার: Stacking-এ সাধারণত বিভিন্ন ধরনের মডেল ব্যবহার করা হয়, যেমন Decision Tree, SVM, Neural Networks, বা Logistic Regression।
  • মেটা-লার্নার ব্যবহার: সমস্ত বেস মডেল একত্রিত হয়ে একটি মেটা-লার্নারে পাঠানো হয়, যা সবগুলির ফলাফল থেকে চূড়ান্ত পূর্বাভাস তৈরি করে।

Stacking এর উদাহরণ

from sklearn.ensemble import StackingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier

# বেস লার্নার এবং মেটা লার্নার
base_learners = [
    ('svm', SVC(probability=True)),
    ('dt', DecisionTreeClassifier())
]
meta_learner = LogisticRegression()

# StackingClassifier তৈরি
stacking_model = StackingClassifier(estimators=base_learners, final_estimator=meta_learner)
stacking_model.fit(X_train, y_train)

# পূর্বাভাস করা
predictions = stacking_model.predict(X_test)

৪. Blending

Blending এর ধারণা

Blending হল Stacking এর একটি সহজ সংস্করণ, যেখানে প্রথমে মডেলগুলির একটি সেট ট্রেনিং করা হয়, এবং তারপর তাদের আউটপুটের ভিত্তিতে একটি নতুন মডেল তৈরি করা হয়। Stacking এবং Blending-এর মধ্যে পার্থক্য হল যে Blending-এ মেটা-লার্নারকে ট্রেনিং ডেটার একটি হোল্ড-আউট সেট থেকে প্রশিক্ষিত করা হয়, যেখানে Stacking-এ পুরো ডেটাসেট ব্যবহার করা হয়।

Blending এর ব্যবহার

  • ট্রেনিং ডেটা ভাগ করা: Blending-এ প্রথমে মডেলগুলি ট্রেনিং ডেটার একটি অংশে ট্রেন করা হয় এবং পরে তাদের আউটপুট আরেকটি মডেল দ্বারা ব্যবহার করা হয়।
  • ডেটা ভাগ: Stacking এর মতো Blending এরও একটি হোল্ড-আউট ডেটাসেট থেকে মেটা-লার্নার ট্রেনিং হয়, তবে এখানে ডেটা সেগমেন্টেশন আরও সরল।

সারাংশ

  • Bagging: একাধিক মডেলের আউটপুট একত্রিত করার মাধ্যমে মডেলের ভ্যারিয়েন্স কমাতে সাহায্য করে, উদাহরণস্বরূপ Random Forest
  • Boosting: পূর্ববর্তী মডেলের ভুল শোধরানোর জন্য প্রতিটি নতুন মডেল বেশি গুরুত্ব দেয়, উদাহরণস্বরূপ AdaBoost এবং XGBoost
  • Stacking: একাধিক মডেলের আউটপুট ব্যবহার করে একটি মেটা-লার্নার দ্বারা চূড়ান্ত সিদ্ধান্ত তৈরি করা হয়, এটি মডেলগুলোতে বৈচিত্র্য এনে তাদের পারফরম্যান্স বাড়ায়।
  • Blending: Stacking এর সহজ সংস্করণ, যেখানে মেটা-লার্নার ট্রেনিংয়ের জন্য একটি হোল্ড-আউট সেট ব্যবহার করা হয়।

এগুলির মধ্যে, Bagging এবং Boosting প্রধানত একক মডেল আউটপুটের উপর ভিত্তি করে কাজ করে, যেখানে Stacking এবং Blending একাধিক মডেলের আউটপুটকে একত্রিত করে চূড়ান্ত সিদ্ধান্তে পৌঁছায়।

Content added By
Promotion

Are you sure to start over?

Loading...