آشنایی با Adaboost

ایده Adaboost بر تقویت دسته بندهای (Classifiers) ضعیف استوار است. اجازه بدهید با یک مثال جلو برویم. فرض کنید مجموعه داده زیر را داریم:

مجموعه داده
مجموعه داده

در مجموعه داده بالا دو ویژگی داریم. برای سهولت در کار می توان مقادیر درست را برابر با 1 و مقادیر نادرست را برابر با 1 - در نظر گرفت. در ابتدای کار به همه مشاهدات وزن یکسانی تعلق خواهد گرفت. ستون (مقدار واقعی * وزن) از حاصل ضرب مقدار واقعی و وزن به دست می آید.

محاسبه وزن برای مجموعه داده
محاسبه وزن برای مجموعه داده

فرض کنید با استفاده از یک دسته بند (Classifier) مانند درخت تصمیم، ماشین بردارهای پشتیبان و... به پیش بینی مشاهدات بالا پرداخته شده است:

محاسبه دسته بند و مقایسه با مقادیر واقعی
محاسبه دسته بند و مقایسه با مقادیر واقعی

از مقایسه ستون مقدار واقعی با ستون پیش بینی مشخص است که سه مورد از پیش بینی ها نادرست است. در ستون خطا این سه مورد با عدد 1 مشخص شده است. از همین رو متغیر epsilon = 0.3 درنظر می گیریم. (سه مورد از ده مورد پیش بینی اشتباه از آب درآمد!) حال متغیر جدیدی به نام alpha تعریف می کنیم:

alpha = ln[(1-epsilon)/epsilon] / 2 = ln[(1 – 0.3)/0.3] / 2

alpha = 0.42

از متغیر alpha برای به روز رسانی وزن ها در مرحله بعد استفاده می شود. وزن های جدید به صورت زیر محاسبه می شود:

وزن جدید = وزن قدیم * ( alpha -* مقدار واقعی*پیش بینی)exp

از همین رو داریم:

به روز رسانی وزن ها
به روز رسانی وزن ها


مرحله دوم:

مرحله دوم را با جدول زیر شروع می کنیم:

مجموعه داده در مرحله دوم
مجموعه داده در مرحله دوم

مشابه مرحله قبل، با استفاده از یک دسته بند (Classifier) دیگری مانند درخت تصمیم، ماشین بردارهای پشتیبان و... به پیش بینی مشاهدات بالا پرداخته شده است:

مقایسه مقدار واقعی و پیش بینی
مقایسه مقدار واقعی و پیش بینی

در این مرحله alpha = 0.65 محاسبه می شود. لازم به ذکر است که

epsilon = 0.071 + 0.071 + 0.071 = 0.21

محاسبه می شود.

وزن ها در جدول زیر به روز رسانی می شود:

به روز رسانی وزن ها در مرحله دوم
به روز رسانی وزن ها در مرحله دوم

مرحله سوم:

مجموعه داده نهایی در مرحله سوم
مجموعه داده نهایی در مرحله سوم

در این مرحله داریم:

epsilon = 0.31, alpha = 0.38

مرحله چهارم:

مجموعه داده نهایی در مرحله چهارم
مجموعه داده نهایی در مرحله چهارم

در این مرحله داریم:

epsilon = 0.10, alpha = 1.10

محاسبه پیش بینی نهایی

جدول نهایی متشکل از مقادیر آلفا و پیش بینی ها در هر مرحله
جدول نهایی متشکل از مقادیر آلفا و پیش بینی ها در هر مرحله

مقدار پیش بینی نهایی مثلا برای مشاهده اول برابر است با:

0.42 x 1 + 0.65 x (-1) + 0.38 x 1 + 1.1 x 1 = 1.25

با استفاده از تابع علامت (Sgin یا Sgn) داریم:

Sgn(1.25) = 1

پس پیش بینی نهایی برای مشاهده اول برابر 1 است.

امیدوارم تا این جا کار این نوشتار به دردتون خورده باشه. اگه خواستید می تونیم در این باره بیشتر با هم گپ بزنیم...