شما این محصولات را انتخاب کرده اید

سبد خرید

کلاسه بندی جمعی یا Ensemble و انواع آن
شناسه پست: 12416
بازدید: 40

یکی از روش‌های کاربردی در یادگیری ماشین، کلاسه بندی جمعی یا Ensemble است که در این مطلب قصد داریم کلیاتی درباره‌ی این روش و انواع آن را ارائه دهیم. با این مطلب همراه علم رسان باشید.

Ensemble چیست؟

در یادگیری ماشین ، روش Ensemble یا کلاسه بندی جمعی از چندین الگوریتم یادگیری اصطلاحاً ضعیف (weak Learner که مدل‌های پایه هستند که با ترکیب چندین مدل ضعیف، مدل پیچیده‌ای ایجاد می‌شود. مدل‌های ضعیف باید تنها اندکی بهتر از حالت تصادفی یعنی Random Guess باشند) استفاده می‌کند تا بتواند عملکرد بهتری را نسبت به تک تک الگوریتم‌ها بدست بیاورد و عملاً یک پیش‌بینی دقیق‌تر و درست‌تر را ارائه دهد. Ensemble در واقع روش یادگیری ماشین با ناظر است که ابتدا یاد می‌گیرد و سپس با آنچه که یاد گرفته است، پیش‌بینی‌هایش را روی داده‌های ناشناخته انجام می‌دهد.

اگر بخواهیم به زبان ساده توضیح بدهیم، فرض کنید که قصد جا به جا کردن یک جسم سنگین را دارید اما به تنهایی از پس آن برنمی‌آیید. در این شرایط با کمک مثلاً 3 نفر دیگر (که هر یک به تنهایی قادر به جا به جایی جسم نیستند)، می‌توانید این کار را انجام دهید و جسم را جا به جا کنید. درواقع با کمک توان جمعی، توانایی انجام یک کار را بدست آوردید.

انواع Ensemble

دو روش معروف برای ایجاد الگوریتم‌های کلاسه بندی جمعی یا همان Ensemble وجود دارد که عبارت‌اند از Bagging و Boosting. در ادامه به توضیح هر یک از این دو روش خواهیم پرداخت.

1- روش Bagging

این روش عملاً یکی از مدل‌های Ensemble است که هدف آن کاهش واریانس در کلاسفایر درخت تصمیم (decision tree classifier) است. در این روش عملاً با استفاده از ترفند Bootstraping، چندین نمونه از دیتاست (اندازه‌ی دیتاست تغییر نمی‌کند اما جای داده‌ها به صورت تصادفی جا به جا می‌شود) ایجاد می‌کنیم. سپس از هر یک از مجموعه‌ی داده‌های جدید برای آموزش یک درخت تصمیم استفاده می‌کنیم. نهایتاً نتیجه‌ی هر یک از مدل‌های ایجاد شده را در اختیار خواهیم داشت و با استفاده از رأی گیری (اصطلاحاً با استفاده از majority Vote) نتیجه‌ی حاصل از داده‌ی تست را پیش‌بینی خواهیم کرد.

از جمله مزایای روش Bagging می‌توانیم به کاهش مشکل Over-fitting (مدلی که نویز را به جای سیگنال‌ها یاد بگیرد، اصطلاحاً Over-fit شده است)، امکان مدیریت بسیار عالی داده‌های چند بعدی و دقت بالا حتی در داده‌های missing اشاره کنیم. البته در نظر داشته باشید که این روش یک مشکل هم دارد و آن هم این است که از آنجایی که در روش Bagging عملاً میانگین حاصل را به عنوان نتیجه اعلام می‌کنیم، برای مدل‌های کلاسیفیکیشن و رگرسیون، مقدار دقیقی را نخواهیم داشت.

رندوم فارست یکی از نمونه‌های Ensemble با روش Bagging است.

نمونه‌ای از Ensemble با Bagging - رندوم فارست
نمونه‌ای از Ensemble با Bagging – رندوم فارست

2- روش Boosting

روش دیگری که در کلاسه بندی جمعی یا همان Ensemble، روش Boosting یا تقویتی است. در این روش، باز هم از ترکیب چندین weak learner برای ایجاد یک مدل قوی استفاده می‌شود اما هیچ یک از مدل‌های یادگیری جدا از هم نیستند، بلکه با یک روش تکرار شونده مواجه هستیم که هر مرحله به مرحله‌ی قبلش وابسته است. در این روش تمرکز بر روی سخت‌ترین نمونه‌هایی است که تا کنون دیده‌ شده‌اند. برای مثال فرض کنید چندین نمونه سؤال امتحانی در اختیار شما قرار گرفته است. هر بار که یکی از سری نمونه‌ سؤالات را می‌خوانید، سخت‌ترین سؤالات را علامت گذاری کرده و سپس دوباره به آن‌ها برمی‌گردید. در مدل Boosting هم هر بار، نمونه‌هایی که اشتباه کلاسه بندی شده‌اند، ارزش بیشتری پیدا می‌کنند تا به این ترتیب کم کم تمرکز بر روی آن‌ها گذاشته شده و در نهایت یک مدل قوی ایجاد شود. البته باید اشاره کنیم که Boosting درست مانند روش Bagging برای مسائل کلاسیفیکیشن و رگرسیون کاربرد دارد.

از جمله انواع الگوریتم‌های Boosting می‌توانیم به AdaBoost و Gradient Tree Boosting و XGBoost اشاره کنیم.

روش Ensemble به حالت Boosting
روش Ensemble به حالت Boosting