آموزشیادگیری ماشین

درس ۵۳ از ۹۹، هوش مصنوعی، حدود ۹ دقیقه خواندن

درخت تصمیم

جواب کوتاه

درخت تصمیم یه زنجیره سوال بله و نه درباره‌ی ویژگی‌هاست که آخرش به یه جواب می‌رسه؛ مثل بازی بیست سوالی. مثلا «بارون میاد؟ اگه نه، تعطیله؟ اگه آره، بریم پارک». هر خونه‌ی درخت یه سواله و هر برگ یه جواب. موقع ساختن، از بین همه‌ی سوال‌های ممکن، اونی رو اول می‌پرسه که داده رو به گروه‌های یه‌دست‌تر تقسیم کنه، و همین کار رو روی هر گروه تکرار می‌کنه. خوندنش برای همه آسونه و هم‌اندازه کردن ویژگی‌ها رو لازم نداره. ولی اگه زیادی عمیق بشه، مثال‌ها رو حفظ می‌کنه؛ برای همین عمقش رو محدود می‌کنن یا هرسش می‌کنن.

بیست سوالی

بیست سوالی بازی کردید؟ یکی یه چیزی توی ذهنشه و شما با سوال‌های بله و نه باید پیداش کنید. «زنده‌ست؟» «از گربه بزرگ‌تره؟» و با چند تا سوال می‌رسید به جواب.

یکی از معروف‌ترین روش‌های یادگیری ماشین دقیقا همین‌طوری کار می‌کنه. بهش می‌گن درخت تصمیم، چون اگه سوال‌ها رو بکشیم، شکل یه درخت وارونه می‌شه: سوال اول بالا، و هر جواب یه شاخه.

این درخت مثلا می‌گه امروز بریم پارک یا نه. هر خونه‌ی مستطیلی یه سواله، و هر برگ گرد یه جواب.

خوندن درخت

فرض کنید امروز آفتابیه و جمعه‌ست. از بالا شروع می‌کنیم و هر بار شاخه‌ی جواب رو می‌گیریم:

  1. «بارون میاد؟» نه. می‌ریم شاخه‌ی «نه».
  2. «تعطیله؟» آره. می‌ریم شاخه‌ی «آره».
  3. رسیدیم به برگ «بریم». جواب همینه.

همین سادگی، بزرگ‌ترین خوبی درخت تصمیمه. هر جوابی که می‌ده، می‌شه دقیقا گفت چرا: «چون بارون نمیومد و تعطیل بود». به این جور مدل‌ها می‌گن جعبه‌ی شیشه‌ای، چون توشون پیداست.

اول کدوم سوال؟

حالا سوال اصلی: این درخت از کجا اومد؟ چرا اول «بارون میاد؟» رو پرسید و نه «تعطیله؟» رو؟ فرض کنید ده روز قبل رو داریم: ۵ روز رفتیم پارک، ۵ روز نه. هر دو تا سوال رو امتحان می‌کنیم و می‌بینیم روزها رو چطوری دو گروه می‌کنن:

«بارون میاد؟» تقریبا همه‌چی رو جدا کرد: توی روزهای بارونی هیچ‌وقت نرفتیم، و توی بقیه، ۵ از ۶ بار رفتیم. ولی «تعطیله؟» دو گروه ساخت که هنوز قاطی‌ان.

پس سوال بهتر اونیه که گروه‌های یه‌دست‌تر بسازه. برای اینکه این رو با عدد بسنجن، یه اندازه‌ی «قاطی بودن» دارن که اسمش ناخالصی جینی هست: برای گروهی که همه‌ش یه جوره صفره و هر چی قاطی‌تر باشه، بیشتر. درخت سوالی رو انتخاب می‌کنه که این عدد رو کمتر کنه.

ادامه‌ی سوال‌ها

بعد از سوال اول، روی هر گروه همین کار رو تکرار می‌کنیم. گروه بارونی‌ها که یه‌دسته؛ همون‌جا یه برگ می‌شه: «نریم». ولی گروه غیربارونی هنوز یه روز قاطی داره، پس براش دوباره بهترین سوال رو پیدا می‌کنیم، که اینجا «تعطیله؟» شد.

این‌قدر ادامه می‌دیم تا گروه‌ها یه‌دست بشن، یا دیگه سوالی کمک نکنه.

یه نکته: درخت هر قدم بهترین سوال همون لحظه رو انتخاب می‌کنه و به قدم‌های بعد فکر نمی‌کنه. مثل کسی که توی هر چهارراه، کوتاه‌ترین خیابون رو انتخاب می‌کنه. معمولا خوب جواب می‌ده، ولی تضمینی نیست که بهترین درخت ممکن ساخته بشه.

سوال درباره‌ی عدد

«بارون میاد؟» جوابش آره یا نه بود. ولی اگه ویژگی یه عدد باشه، مثل دما، چی؟ اون‌وقت سوال می‌شه «دما بیشتر از فلان عدده؟». فقط باید بهترین «فلان» رو پیدا کنیم:

درخت بین هر دو روز کنار هم یه برش امتحان می‌کنه و همون اندازه‌ی قاطی بودن رو می‌سنجه. اینجا برش ۱۹ درجه روزهای سرد (که نرفتیم) رو از روزهای گرم (که رفتیم) کاملا جدا کرد.

دو تا نکته‌ی خوب از همین‌جا درمیاد. یکی اینکه درخت فقط می‌پرسه «بیشتره یا نه»، پس برخلاف نزدیک‌ترین همسایه‌ها، لازم نیست ویژگی‌ها رو هم‌اندازه کنیم. دوم اینکه جواب برگ می‌تونه یه عدد هم باشه، مثلا میانگین قیمت خونه‌هایی که به اون برگ رسیدن. به این می‌گن درخت رگرسیون.

درخت زیادی بزرگ

اگه بذاریم درخت هر چقدر خواست سوال بپرسه، اون‌قدر ادامه می‌ده که برای هر روز یه برگ جدا بسازه:

کوتاه: الگوی اصلی رو می‌گیره
خیلی عمیق: هر روز رو جدا حفظ می‌کنه

درخت عمیق روی روزهای قبلی بی‌خطاست، ولی فقط چون حفظشون کرده؛ این همون بیش‌برازش هست. برای جلوگیریش یا عمق درخت رو محدود می‌کنن، یا اول کامل می‌سازنش و بعد شاخه‌هایی که کمکی نمی‌کنن رو می‌بُرن. به این دومی می‌گن هرس. عمق درخت هم یه ابرپارامتره.

یه ایراد دیگه هم داره: یه تغییر کوچیک توی داده، مثلا عوض شدن چند تا روز، می‌تونه یه درخت کاملا متفاوت بسازه. یعنی درخت تنها خیلی پایدار نیست.

چند نکته

  • برای همه قابل فهم: کسی که آمار نمی‌دونه هم با یه توضیح کوتاه می‌تونه درخت رو بخونه.
  • هم عدد، هم دسته: با ویژگی عددی (دما) و غیرعددی (تعطیل یا نه) هر دو کار می‌کنه و آماده‌سازی زیادی نمی‌خواد.
  • تنها ناپایدار، با هم پایدارتر: برای همون ناپایداری، معمولا جای یه درخت، صدها درخت می‌سازن و با هم رأی می‌دن.

درس بعد درباره‌ی همین صدها درخته: جنگل تصادفی.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • هر خونه یه سوال، هر برگ یه جواب.
  • اول، سوالی که گروه‌ها رو یه‌دست‌تر کنه.
  • روی هر گروه تکرار.
  • عدد: بهترین برش رو پیدا کن.
  • زیادی عمیق: حفظ می‌کنه؛ محدود یا هرس کن.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد