جنگل تصادفی
جواب کوتاه
جنگل تصادفی یعنی جای یه درخت تصمیم، صدها درخت بسازیم و جوابشون رو با هم ترکیب کنیم: برای دستهبندی، دستهای که بیشتر درختها گفتن؛ برای عدد، میانگین همه. مثل وقتی که پنج نفر تعداد آبنباتهای یه شیشه رو حدس میزنن؛ هر کدوم یه کم اشتباهن، ولی میانگینشون خیلی نزدیکه. شرطش اینه که درختها با هم فرق داشته باشن، برای همین دو جا تصادف میاد وسط: هر درخت با یه قرعهکشی «با برگردوندن» از داده ساخته میشه، و سر هر سوال فقط چند تا ویژگی تصادفی رو نگاه میکنه. نتیجه معمولا خیلی دقیقتر و پایدارتر از یه درخته، ولی دیگه به سادگی یه درخت خوندنی نیست.
حدس آبنباتها
یه شیشه پر از آبنبات رو بذارید جلوی پنج نفر و بپرسید «به نظرت چند تا توشه؟». هر کی یه عددی میگه.
هیچکدوم دقیق نگفتن. یکی ۸۰ تا کم گفت، یکی ۱۱۰ تا زیاد. ولی وقتی میانگین پنج تا حدس رو میگیریم، میشه ۵۰۲؛ خیلی نزدیک به ۵۰۰. چون اشتباهها هر کدوم یه طرف بودن و همدیگه رو خنثی کردن.
جنگل تصادفی همین ایده رو با درخت تصمیم پیاده میکنه. جای یه درخت، صدها درخت میسازه و از همهشون نظر میپرسه.
صدها درخت
یادتونه درخت «بریم پارک؟» رو؟ حالا فرض کنید پنج تا درخت داریم که هر کدوم یه کم متفاوت ساخته شدن. برای امروز، هر کدوم یه رأی میده:
سه تا گفتن «بریم»، دو تا «نریم». پس جواب جنگل: بریم. اگه جواب یه عدد باشه، مثل قیمت خونه، جای رأی، میانگین جواب درختها رو میگیریم.
توی درس قبل دیدیم یه درخت تنها زود بیشبرازش میکنه و با یه تغییر کوچیک توی داده کلی عوض میشه. رأی جمع این ضعف رو جبران میکنه.
باید فرق داشته باشن
یه شرط مهم داره. اگه پنج نفر حدسهاشون رو از روی هم بنویسن، میانگین گرفتن هیچ کمکی نمیکنه؛ همه همون اشتباه رو تکرار میکنن. حدسها وقتی همدیگه رو خنثی میکنن که هر کدوم مستقل باشه.
درختها هم همینطورن. اگه صد تا درخت رو با دقیقا همون داده بسازیم، صد تا درخت یکسان داریم و رأیگیری هیچ فایدهای نداره. برای همین جنگل تصادفی دو جا عمدا تصادف میاره وسط تا درختها با هم فرق کنن. اسمش هم از همین «تصادفی» اومده.
قرعهکشی با برگردوندن
تصادف اول: هر درخت دادهی مخصوص خودش رو میگیره. فرض کنید ده تا مثال داریم و هر کدوم یه شماره داره. برای هر درخت ده بار قرعه میکشیم، ولی هر شمارهای که درومد، برش میگردونیم توی کیسه:
چون برمیگردونیم، بعضی شمارهها دو سه بار درمیان و بعضیها اصلا درنمیان. پس هر درخت یه نسخهی کمی متفاوت از داده رو میبینه. به این کار میگن بگینگ.
یه جایزه هم داره: مثالهایی که یه درخت ندیده، برای اون درخت مثل دادهی آزمونن. اگه هر مثال رو فقط با درختهایی بسنجیم که ندیدنش، یه نمرهی مجانی از روی دادهی ندیده داریم. بهش میگن خطای «بیرون از کیسه».
چند ویژگی تصادفی
تصادف دوم: هر وقت درخت میخواد سوال بعدیش رو پیدا کنه، اجازه نداره بین همهی ویژگیها بگرده؛ فقط چند تا ویژگی تصادفی بهش میدیم:
چرا؟ چون اگه یه ویژگی خیلی قوی باشه، مثلا «بارون»، همهی درختها اول همون رو میپرسن و دوباره همه شبیه هم میشن. با این کار، بعضی درختها مجبور میشن از ویژگیهای دیگه هم چیز یاد بگیرن.
معمولا برای دستهبندی، اگه ۹ تا ویژگی داشته باشیم، سر هر سوال جذر ۹، یعنی ۳ تا ویژگی رو نگاه میکنه.
چند نکته
- چند تا درخت؟ معمولا چند صد تا چند هزار. از یه جایی به بعد، اضافه کردن درخت دیگه خطا رو کمتر نمیکنه و نمودارش صاف میشه.
- خوندنش سختتره: یه درخت رو میشه خوند و گفت چرا این جواب رو داد. صدها درخت رو نه. یعنی دقت بیشتر رو با از دست دادن این سادگی میخریم.
- کدوم ویژگی مهمتره؟ یه راه جالب: مقدارهای یه ویژگی رو بین مثالها قاطی کنیم و ببینیم خطای جنگل چقدر بالا میره. هر چی بیشتر بالا بره، اون ویژگی مهمتر بوده.
- از کِی؟ اولین نسخهش سال ۱۹۹۵ ساخته شد.
توی جنگل تصادفی، درختها جدا از هم و همزمان ساخته میشن. درس بعد یه راه دیگهست که درختها رو پشت سر هم میسازه و هر کدوم اشتباه قبلیها رو درست میکنه: تقویت گرادیانی.
جمعبندی. آنچه از این درس با خودتان میبرید.
- صدها درخت؛ رأی یا میانگین همه.
- درختها باید با هم فرق داشته باشن.
- هر درخت: قرعهکشی با برگردوندن از داده.
- هر سوال: چند ویژگی تصادفی.
- دقیقتر و پایدارتر، ولی کمتر خوندنی.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.