480 likes | 740 Views
Amirkabir University of Technology Computer Engineering & Information Technology Department. یادگیری درخت تصمیم. Instructor : Saeed Shiry & Mitchell Ch. 3. مقدمه. در یک مسئله یادگیری با دو جنبه مختلف روبرو هستیم: نحوه نمایش فرضیه ها روشی که برای یادگیری برمی گزینیم
E N D
Amirkabir University of TechnologyComputer Engineering & Information Technology Department یادگیریدرخت تصمیم Instructor : Saeed Shiry & Mitchell Ch. 3
مقدمه • در یک مسئله یادگیری با دو جنبه مختلف روبرو هستیم: • نحوه نمایش فرضیه ها • روشی که برای یادگیری برمی گزینیم • در این فصل برای نمایش فرضیه ها از درخت تصمیم استفاده میکنیم و برای یادگرفتن این درخت از روش ID3 استفاده میکنیم.
درخت تصمیم • درختها درهوش مصنوعی برای نمایش مفاهیم مختلفی نظیر ساختار جملات، معادلات، حالات بازی، و غیره استفاده میشود. • یادگیری درخت تصمیم روشی برای تقریب توابع هدف با مقادیر گسسته است. این روش نسبت به نویز داده هامقاوم بوده وقادر است ترکیب فصلی گزاره های عطفی را یاد بگیرد. • این روش جزو مشهورترین الگوریتمهای یادگیری استقرائی است که بصورت موفقیت آمیزی در کاربردهای مختلف بکار گرفته شده است.
نمایش درخت تصمیم • درخت تصمیم درختی است که در آن نمونه ها را به نحوی دسته بندی میکند که از ریشه به سمت پائین رشد میکنند و در نهایت به گره های برگ میرسد: • هر گره داخلی یاغیر برگ (non leaf) با یک ویژگی (attribute) مشخص میشود. این ویژگی سوالی را در رابطه با مثال ورودی مطرح میکند. • درهر گره داخلی به تعداد جوابهای ممکن با این سوال شاخه (branch) وجود دارد که هر یک با مقدار آن جواب مشخص میشوند. • برگهای این درخت با یک کلاس و یا یک دسته از جوابها مشخص میشوند. • علت نامگذاری آن با درخت تصمیم این است که این درخت فرایند تصمیم گیری برای تعیین دسته یک مثال ورودی را نشان میدهد.
مثالی از یک درخت تصمیم محل درد شکم گلو سینه هیچکدام آپاندیس تب سکته سرفه بله خیر بله خیر باکتری ویروسی تب هیچکدام • هر برگ این درخت یک کلاس یا دسته را مشخص میکند. • یک مثال آموزشی در درخت تصمیم به این صورت دسته بندی میشود: • از ریشه درخت شروع میشود. • ویژگی معین شده توسط این گره تست می گردد. • و سپس منطبق با ارزش ویژگی در مثال داده شده در طول شاخه ها حرکت رو به پائین انجام می دهد. • این فرآیند برای گره های زیردرختان گره جدید تکرار می شود. بله خیر آنفولانزا سرماخوردگی
کاربردها • درخت تصمیم در مسایلی کاربرد دارد که بتوان آنها را بصورتی مطرح نمود که پاسخ واحدی بصورت نام یک دسته یا کلاس ارائه دهند. • برای مثال میتوان درخت تصمیمی ساخت که به این سوال پاسخ دهد: بیماری مریض کدام است؟ و یا درختی ساخت که به این سوال پاسخ دهد: آیا مریض به هپاتیت مبتلاست؟ • برای مسائلی مناسب است که مثالهای آموزشی بصورت زوج (مقدار-ویژگی) مشخص شده باشند. • تابع هدف دارای خروجی با مقادیر گسسته باشد. مثلا هر مثال با بله و خیر تعیین شود. • نیاز به توصیف گر فصلی (disjunctive) باشد.
ویژگی های درخت تصمیم • برای تقریب توابع گسسته بکار می رود (classification) • نسبت به نویز داده های ورودیمقاوم است • برای داده های با حجم بالا کاراست از این رو درData mining استفاده می شود • می توان درخت را بصورت قوانین if-then نمایش داد که قابل فهم برای استفاده است • امکان ترکیب عطفی و فصلی فرضیه ها را می دهد • در مواردی که مثالهای آموزشی که فاقد همه ویژگیها هستند نیز قابل استفاده است
نحوه نمایش درخت تصمیم ارتباط مستقیمی بین درخت تصمیم ونمایش توابع منطقی وجود دارد.درواقع هردرخت تصمیم ترکیب فصلی گزاره های عطفی است مسیر از ریشه به برگ ترکیب عطفی (AND)از ویژگی ها را مشخص نموده و خوددرخت ترکیب فصلی(OR) این ترکیبات را میسازد.
مثال • ترکیب عطفی No No Outlook=Sunny AND Wind=Normal
مثال • ترکیب فصلی OR
مثال • تابعXOR XOR
الگوریتم یادگیری درخت تصمیم • اغلب الگوریتم های یادگیری درخت تصمیم بر پایه یک عمل جستجوی حریصانه (greedy) بالا به پائین (top-down) در فضای درختهای موجود عمل میکنند. • این الگوریتم پایه، Concept Learning System (CLS) نامیده می شود که در سال 1950 معرفی شده است. • این الگوریتم توسط Ross Quilan در سال 1986 بصورت کاملتری تحت عنوان Inducing Decisition trees (ID3) مطرح گردید. • بعدها الگوریتم کاملتر دیگری تحت عنوان C4.5 ارائه گردید که برخی نقائص ID3 را برطرف میکند.
ایده اصلی ID3 • این ایده به Ocuum’s Razor مشهور است ومی گوید : ” دنیا ذاتا ساده است“ بنابراین از کوچکترین درخت تصمیم که با داده سازگار باشد انتظار می رود که مثالهای نادیده را به درستی دسته بندی کند.
بایاس درخت تصمیم • انتخاب درختهای کوچکتر بایاس درخت تصمیم بر این ایده است که درختهای کوچکتر بر درختهای بزرگتر ترجیح داده شود.
سئوال اگر مسئله ما دارای m ویژگی باشد، ارتفاع درخت تصمیم چقدر خواهد بود؟ جواب: درخت تصمیم دارای یک ریشه است که آن خود یک ویژگی است، در سئوال از آن ویژگی به پاسخی می رسیم که آن خود نیز، ویژگی است. پس حداکثر ارتفاع درخت m خواهد بود. ویژگی1 ویژگی2 ویژگیm دستهA دستهB
الگوریتم ID3 • در این الگوریتم درخت تصمیم از بالا به پائین ساخته میشود. این الگوریتم با این سوال شروع میشود: کدام ویژگی باید در ریشه درخت مورد آزمایش قرار گیرد؟ • برای یافتن جواب از یک آزمون آماری استفاده میشود تا مشخص گردد هر کدام تا چه حد قادر است به تنهائی مثالهای آزمایشی را دسته بندی کند. • با انتخاب این ویژگی، برای هر یک از مقادیر ممکن آن یک شاخه ایجاد شده و مثالهای آموزشی بر اساس ویژگی هر شاخه مرتب میشوند. سپس عملیات فوق برای مثالهای قرار گرفته در هر شاخه تکرار میشوند تا بهترین ویژگی برای گره بعدی انتخاب شود. • این الگوریتم یک جستجوی حریصانه است که در آن انتخاب های قبلی هرگز مورد بازبینی قرار نمیگیرند.
نحوه ساختن درخت • برای ساختن درخت تصمیم از مثالهائی استفاده میشود که علامت گذاری (label) شده باشند. • درواقع ورودی سیستم یادگیر مجموعه ای از مثالهاست که هر مثال توسط مجموعه ای از ویژگی ها بیان شده است،هرویژگی می تواند دارای مجموعه متناهی ازمقادیر مختلف باشد. برای هر مثال علاوه بر ویژگیها مقدار دسته بندی آن نیز لازم می باشد. • در این فصل با درختهای تصمیمی آشنا خواهیم شد که برای دسته بندی بولی بکار می روند ولی درحالت کلی می توان یک درخت تصمیم ساخت که برای هر نوع دسته بندی بکار می رود.
کدام ویژگی طبقه بندی کننده بهتری است؟ • در درخت تصمیم (ID3) از یک مقدار آماری به نام بهره اطلاعات Information Gain استفاده می شود تا اینکه مشخص کنیم که یک ویژگی تا چه مقدار قادر است مثالهای آموزشی را بر حسب دسته بندی آنها جدا کند.
برای یادگیری نحوه دسته بندی مثال ساده ای را بررسی می کنیم. در مثال ذیل کدام ویژگی باید در ریشه درخت قرار گیرد؟ x2 x1 x0 با توجه به صفحه عبوری از مکعب زیر x0 یا x2 می توانند ریشه باشند مثال
حل مثال : درخت کامل ما به این صورت است : این درخت کامل و پیچیده است وضمنا خطا هم ندارد. در بایاس کردن هم هدف ساده کردن است که ممکن است ایجاد خطا کند.
معیار کمی اندازه گیری یک ویژگی کدام است؟ سئوال را می توان به روش دیگری نیز بیان کرد: ” بهترین ویژگی برای قرار گرفتن در ریشه درخت را چگونه باید انتخاب کنیم؟ “ برای حل تعداد مثالهای مثبت و منفی جدا شده را در نظر میگیریم
آنتروپی : • میزان خلوص (بی نظمی یا عدم خالص بودن) مجموعه ای از مثالها را مشخص می کند. اگر مجموعه S شامل مثالهای مثبت و منفی از یک مفهوم هدف باشد آنتروپی S نسبت به این دسته بندی بولی بصورت زیر تعریف می شود. که نسبت مثالهای مثبت به کل مثالها و نسبت مثالهای منفی به کل مثالها می باشد. همچنین 0 log0=0 فرض میشود.
مثال : • آنتروپی x0 و x1 و x2 چقدراست؟ • سئوال: اگر همه اعضاء S یکسان باشند آنتروپی چقدر است؟ صفر
سئوال • اگر اعضای S نیمی مثبت و نیمی منفی باشد آنتروپی چقدر است ؟ • یک
آنتروپی برای دسته بندی های غیر بولی • اگر ویژگی هدف دارایC مقدار مختلف باشد آنتروپی S نسبت به این دسته بندی Cگانه بصورت زیر تعریف میشود: • که در آن pi نسبتی از S است که به دسته i تعلق دارند. توجه شود که log همچنان در مبنای 2 گرفته میشود. در این حالت حداکثر آنتروپی میتواند log2C باشد.
بهره اطلاعات(Information Gain) • بهره اطلاعات یک ویژگی عبارت است از مقدار کاهش آنتروپی که بواسطه جداسازی مثالها از طریق این ویژگی حاصل میشود. • بعبارت دیگر بهره اطلاعات Gain(S,A) برای یک ویژگی نظیر A نسبت به مجموعه مثالهای S بصورت زیر تعریف میشود: • که در آن Values(A) مجموعه همه مقدار ویژگی های A بوده و SVزیرمجموعه ای از S است که برای آن A دارای مقدار V است. • در تعریف فوق عبارت اول مقدار آنتروپی داده ها و عبارت دوم مقدار آنتروپی مورد انتظار بعد از جداسازی داده هاست.
مثال • با استفاده از مثالهای آموزشی زیر درختی بسازید که لذت بخش بودن بازی در روزهایی با ویژگیهای مختلف راتعیین کند.
Overfitting • برای فرضیه ای مثل h متعلق به فضای فرضیه H دو نوع خطا تعریف میشود: • خطا روی داده های آموزشی errortrain(h) • خطا روی کل داده های ممکن DerrorD(h) • میگوئیم برای فرضیه h H روی داده های آموزشی Overfitting رخ میدهد اگر فرضیه ای مثل h0 H وجود داشته باشد که: • errortrain(h) < errortrain(h0) • and • errorD(h) > errorD(h0)
دلایل بروز Overfitting • الگوریتم ID3 هر شاخه از درخت را آنقدر به عمق میبرد که بتواند بطور کامل مثالهای آموزشی را دسته بندی کند. این امر میتواند منجر به Overfitting شود. دلایل بروز overfitting عبارتند از: • وجود نویز در داده های آموزشی • تعداد کم مثالهای آموزشی • برای مثال اگر فقط دو بار پرتاب سکه داشته باشیم و هر دو بار شیر آمده باشد چه نتیجه ای در مورد این آزمایش میتوان گرفت؟
پرهیز ازOverfitting • جلوگیری از رشد درخت قبل از رسیدن به مرحله ای که بطور کامل داده های آموزشی را دسته بندی نماید. • اجازه به رشد کامل درخت و سپس حرس کردن شاخه هائی که مفید نیستند. (post pruning) در عمل روش دوم بیشتر استفاده شده است زیرا تخمین اندازه صحیح درخت کار ساده ای نیست.
حرس کردن درخت به روش Reduced Error Pruning • این روش توسط Quinlan ارائه شده است. ابتدا به درخت اجازه داده میشود تا به اندازه کافی رشد کند. سپس گره هائی را که باعث افزایش دقت دسته بندی نمیشوند حرس میگردند: • داده ها به دو مجموعه تست و آموزشی تقسیم میشوند. • درخت با داده های آموزشی مطابق روش قبل یاد گرفته میشود. • سپس برای یک گره داخلی (غیر برگ n ) • زیرشاخه n حذف میگردد. این زیر شاخه با یک برگ جایگزین میشود. به این برگ دسته مثالهای اکثریت یعنی دسته بندی اکثر مثالهای قرار گرفته تحت این شاخه نسبت داده میشود. • عملکرد درخت برروی مثالهای تست بررسی میشود: اگر درخت حرس شده عملکرد بهتر و یا مساوی با درخت فعلی داشت از درخت حرس شده استفاده میشود. • حرس کردن آنقدر ادامه می یابد تا حرس بیشتر، سودی نداشته باشد.
Overfitting یک پدیده عمومی است پدیده overfitting منحصر به درخت های تصمیم نیست و سایر روشهای یادگیری ماشینی نیز با آن مواجه هستند. این پدیده غالبا وقتی اتفاق می افتد که: • the hypothesis space is very large • the hypothesis search is not biased toward simple models • there is little training data • there is a lot of noise in the training data در عمل با دیدن شرایط زیر میتوانیم بگوئیم که overfitting رخ داده است: • اختلاف زیاد بین دقت دسته بندی داده های آموزشی و داده های تست • رسیدن به فرضیه و یا مدلهای خیلی پیچیده ( مثلا رسیدن به یک درخت تصمیم خیلی بزرگ)
در نظر گرفتن ویژگی های با مقادیر پیوسته • درخت یادگرفته شده توسط ID3 محدود به توابع و ویژگی های با مقدار گسسته است. • برای اینکه این الگوریتم ویژگی های با مقدار پیوسته را نیز شامل شود، میتوان برای یک ویژگی پیوسته مثل A یک ویژگی بولی مثل Ac تعریف گرد که Ac درست است اگر A<C باشد و در غیر اینصورت نادرست است. • C باید طوری انتخاب شود که بهره اطلاعات را حداکثر کند. اینکار میتواند با مرتب کردن مقادیر ویژگی A وانتخاب نقاطی که مقادیر مثالهای مجاور تغییر میکنند انجام شود. در چنین حالتی میانگین دومثال مجاور میتواند بعنوان آستانه انتخاب شود.
سایر معیارهای انتخاب ویژگی برای درخت • اگر به مثال قبل یک ویژگی به نام تاریخ اضافه شود، این ویژگی به تنهائی قادر خواهد بود تا کلیه مثالهای آموزشی را دسته بندی کند. در واقع بعلت اینکه این ویژگی دارای بهره اطلاعات زیادی است بعنوان ریشه درخت انتخاب خواهد شد و درخت حاصله دارای عمق بسیار کمی خواهد بود. • با وجود اینکه این درخت مثالهای آموزشی را بخوبی دسته بندی خواهد کرد اما در مورد مثالهای نادیده بسیار ضعیف عمل خواهد نمود. زیرا این درخت در عمل مثالهای آموزشی را حفظ کرده و قادر به تعمیم نیست.
معیار نسبت بهره یا gain ratio • برای پرهیز از ویژگی هائی مثل تاریخ میتوان از معیار دیگری با نام نسبت بهره و یا gain ratio استفاده نمود که خاصیت آن حساسیت داشتن به این است که یک ویژگی با چه گستردگی و یکنواختی داده ها را جدا میکند. • برای اینکار عبارتی بصورت زیر تعریف میشود: • با استفاده از عبارت فوق نسبت بهره بصورت زیر تعریف میشود:
معیار نسبت بهره یا gain ratio • SI باعث میشود تا ویژگی هائی که مقادیر زیادی با توزیع یکنواخت دارند حذف گردند. • برای مثال یک ویژگی نظیر تاریخ برای تک تک مثالها توزیع یکسانی دارد از اینرو SI=logn2 خواهد شد در حالیکه اگر یک ویژگی مثالها را به دو دسته تقسیم کند SI=1 خواهد شد. • یک مشکل عملی استفاده ازمعیار نسبت بهره این است که ممکن است مخرج این عبارت صفر و یا خیلی کوچک شود. در این حالت از روشهای هیوریستیک استفاده میشود.
ویژگی هائی با هزینه متفاوت • در بررسی پرونده یک بیمار ممکن است هزینه تست کردن برخی ویژگی ها بسیار بالا باشد و یا اینکه علیرغم موثربودن ویژگی تست آن خطرناک باشد. • در این حالت باید درخت را طوری بایاس کرد که ویژگی های با هزینه کم را ترجیح دهد. برای مثال ممکن است بهره را بر هزینه تقسیم نمود.
مثالهائی با ویژگی های نامعلوم • در برخی از کاربردها نظیر مدارک پزشکی جمع آوری شده در بیمارستانهای مختلف ممکن است مقدار برخی از ویژگی ها درست ثبت نشده باشد. در این صورت یک انتخاب میتواند این باشد که به آن مقدار متداولترین مقدار مثالها در گره n نسبت داده شود.
UCI Machine Learning Repository • Currently maintains 177 data sets as a service to the machine learning community. • http://archive.ics.uci.edu/ml/
موضوع ارائه • fuzzy decision trees • pruning in decision tree induction