Decision Tree (درخت تصمیم) چیست؟
Decision Tree مفهومی است که اگر در نظر دارید تا تصمیم پیچیدهای بگیرید و یا میخواهید مسائل را برای خودتان به بخشهای کوچکتری تقسیم کرده تا به شکل بهتری قادر به حل آنها گردیده و ذهنتان را سازماندهی کنید، میتوانید از آن استفاده نمایید. در این پست قصد داریم تا همه چیز را در مورد درختهای تصمیمگیری مورد بررسی قرار دهیم؛ از جمله اینکه این مفهوم چه هست، چهطور مورد استفاده قرار میگیرد و همچنین چگونه میتوانیم دست به ایجاد یک درخت تصمیمگیری بزنیم.
آشنایی با مفهوم Decision Tree (درخت تصمیم)
به طور خلاصه، درخت تصمیم نقشهای از نتایج احتمالی یکسری از انتخابها یا گزینههای مرتبط بهم است به طوری که به یک فرد یا سازمان اجازه میدهد تا اقدامات محتمل را از لحاظ هزینهها، احتمالات و مزایا بسنجد. از درخت تصمیم میتوان یا برای پیشبرد اهداف و برنامههای شخصی و غیررسمی یا ترسیم الگوریتمی که بر اساس ریاضیات بهترین گزینه را پیشبینی میکند، استفاده کرد.
یک درخت تصمیمگیری به طور معمول با یک نُود اولیه شروع میشود که پس از آن پیامدهای احتمالی به صورت شاخههایی از آن منشعب شده و هر کدام از آن پیامدها به نُودهای دیگری منجر شده که آنها هم به نوبهٔ خود شاخههایی از احتمالات دیگر را ایجاد میکنند که این ساختار شاخهشاخه سرانجام به نموداری شبیه به یک درخت مبدل میشود. در درخت تصمیمگیری سه نوع Node (گِره) مختلف وجود دارد که عبارتند از:
– نُودهای تصادفی – نُودهای تصمیمگیری – نُودهای پایانی
نُود تصادفی، که توسط یک دایره نشان داده میشود، نمایانگر احتمال وقوع یکسری نتایج خاص است، نُود تصمیمگیری، که توسط یک مربع نشان داده میشود، تصمیمی که میتوان اتخاذ کرد را نشان میدهد و همچنین نُود پایانی نمایانگر پیامد نهایی یک مسیر تصمیمگیری خواهد بود.
درختهای تصمیمگیری را میتوان با سَمبولها یا علائم فلوچارت نیز رسم کرد که در این صورت برای برخی افراد، به خصوص دولوپرها، درک و فهم آن آسانتر خواهد بود.
چهطور می توان اقدام به کشیدن یک Decision Tree کرد؟
به منظور ترسیم یک درخت تصمیم، ابتدا وسیله و ابزار مورد نظرتان را انتخاب کنید (میتوانید آن را با قلم و کاغذ یا وایتبرد کشیده یا اینکه میتوانید از نرمافزارهای مرتبط با این کار استفاده کنید.) فارغ از اینکه چه ابزاری انتخاب میکنید، میبایست به منظور ترسیم یک درخت تصمیم اصولی، مراحل زیر را دنبال نمایید:
۱- کار با تصمیم اصلی آغاز کنید که برای این منظور از یک باکس یا مستطیل کوچک استفاده کرده، سپس از آن مستطیل به ازای هر راهحل یا اقدام احتمالی خطی به سمت راست/چپ کشیده و مشخص کنید که هر خط چه معنایی دارد.
۲- نُودهای تصادفی و تصمیمگیری را به منظور شاخ و برگ دادن به این درخت، به طریق پایین رسم کنید:
ـ اگر تصمیم اصلی دیگری وجود دارد، مستطیل دیگری رسم کنید. ـ اگر پیامدی قطعی نیست، یک دایره رسم کنید (دایرهها نمایانگر نُودهای تصادفی هستند.) ـ اگر مشکل حل شده، آن را فعلاً خالی بگذارید.
از هر نُود تصمیمگیری، راههای احتمالی را منشعب کنید به طوری که برای هر کدام از نُودهای تصادفی، خطوطی کشیده و به وسیلهٔ آن خطوط پیامدهای احتمالی را نشان دهید و اگر قصد دارید گزینههای پیش روی خود را به صورت عددی و درصدی آنالیز کنید، احتمال وقوع هر کدام از پیشامدها را نیز یادداشت کنید.
۳- به بسط این درخت ادامه دهید تا زمانی که هر خط به نقطهٔ پایانی برسد (یعنی تا جایی که انتخابهای دیگری وجود نداشته و پیامدهای احتمالی دیگری برای در نظر گرفتن وجود نداشته باشد.) در ادامه، برای هر پیشامد احتمالی یک مقدار تعیین کنید که این مقدار میتواند یک نمرهٔ فرضی یا یک مقدار واقعی باشد. همچنین به خاطر داشته باشید که برای نشان دادن نقاط پایانی، از مثلث استفاده کنید.
حال با داشتن یک درخت تصمیم کامل، میتوانید تصمیمی که با آن مواجه هستید را تجزیه و تحلیل کنید.
مثالی از پروسهٔ تجزیه و تحلیل Decision Tree با محاسبهٔ سود یا مقدار مورد انتظار از هر انتخاب در درخت مد نظر خود، میتوانید ریسک را به حداقل رسانده و احتمال دستیابی به یک پیامد یا نتیجهٔ مطلوب و مورد انتظار را بالا ببرید. به منظور محاسبهٔ سود مورد انتظار یک گزینه، تنها کافی است هزینهٔ تصمیم را از مزایای مورد انتظار آن کسر کنید (مزایای مورد انتظار برابر با مقدار کلی تمام پیامدهایی است که میتوانند از یک انتخاب ناشی شوند که در چنین شرایطی هر مقدار در احتمال پیشامد ضرب شده است.) برای مثالی که در تصاویر بالا زدهایم، بدین صورت این مقادیر را محاسبه خواهیم کرد:
زمانی که قصد داریم دست به تعیین مطلوبترین پیامد بزنیم، مهم است که ترجیحات تصمیمگیرنده را نیز مد نظر داشته باشیم چرا که برخی افراد ممکن است گزینههای کمریسک را ترجیح داده و برخی دیگر حاضر باشند برای یک سود بزرگ، دست به ریسکهای بزرگی هم بزنند.
هنگامی که از درخت تصمیمتان به همراه یک مدل احتمالی استفاده میکنید، میتوانید از ترکیب این دو برای محاسبهٔ احتمال شرطی یک رویداد، یا احتمال پیشامد آن اتفاق با در نظر گرفتن رخ دادن دیگر اتفاقات استفاده کنید که برای این منظور، همانطور که در تصویر فوق مشاهده میشود، کافی است تا از رویداد اولیه شروع کرده، سپس مسیر را از آن رویداد تا رویداد هدف دنبال کنید و در طی مسیر احتمال هر کدام از آن رویدادها را در یکدیگر ضرب نمایید که بدین ترتیب میتوان از یک درخت تصمیم به شکل یک نمودار درختی سنتی بهره برد که نشانگر احتمال رخداد رویدادهای خاص (مثل دو بار بالا انداختن یک سکه) میباشد.
آشنایی با برخی مزایا و معایب Decision Tree
در میان متخصصین در صنایع مختلف، مدیران و حتی دولوپرها، درختهای تصمیم محبوباند چرا که درک آنها آسان بوده و به دیتای خیلی پیچیده و دقیقی احتیاج ندارند، میتوان در صورت لزوم گزینههای جدیدی را به آنها اضافه کرد، در انتخاب و پیدا کردن بهترین گزینه از میان گزینههای مختلف کارآمد هستند و همچنین با ابزارهای تصمیمگیری دیگر به خوبی سازگاری دارند.
با تمام اینها، درختهای تصمیم ممکن است گاهی به شدت پیچیده شوند! در چنین مواردی یک به اصطلاح Influence Diagram جمع و جورتر میتواند جایگزین بهتری برای درخت تصمیم باشد به طوری که این دست نمودارها توجه را به تصمیمات حساس، اطلاعات ورودی و اهداف محدود میکنند.
کاربرد Decision Tree در حوزهٔ ماشین لرنینگ و دیتا ماینینگ
از درخت تصمیم میتوان به منظور ایجاد مُدلهای پیشبینی خودکار استفاده کرد که در حوزهٔ یادگیری ماشینی، استخراج داده و آمار کاربردی هستند. این روش که تحت عنوان Decision Tree Learning شناخته میشود، به بررسی مشاهدات در مورد یک آیتم به جهت پیشبینی مقدارش میپردازد و به طور کلی، در چنین درخت تصمیمی، نُودها نشاندهندهٔ دیتا هستند نَه تصمیمات. این نوع درختها همچنین تحت عنوان Classification Tree نیز شناخته میشوند به طوری که هر شاخه در برگیرندهٔ مجموعهای از ویژگیها یا قوانین طبقهبندی دیتا است و مرتبط با یک دستهٔ خاص میباشد که در انتهای هر شاخه یافت میشود.
این دست قوانین که تحت عنوان Decision Rules شناخته میشوند قابل بیان به صورت جملات شرطی میباشند (مثلاً اگر شرایط ۱ و ۲ و ۳ محقق شوند، با قطعیت میتوان گفت که X نتیجهای همچون Y برخواهد گرداند.) هر مقدار دادهٔ اضافی به مدل کمک میکند تا دقیقتر پیشبینی کند که مسئلهٔ مورد نظر به کدام مجموعه از مقادیر متعلق میباشد و این در حالی است که از این اطلاعات بعداً میتوان به عنوان ورودی در یک مدل تصمیمگیری بزرگتر استفاده کرد.
درختهای تصمیمگیری که پیامدهای محتمل پیدرپی و بینهایت دارند، Regression Tree نامیده میشوند. به طور کلی، متدهای کاربردی در این حوزه به صورت زیر دستهبندی میشوند:
– Bagging: در این متد با نمونهسازی مجدد دیتای سورس، چندین درخت ایجاد شده سپس با برداشتی که از آن درختان میشود، تصمیم نهایی گرفته شده یا نتیجهٔ نهایی به دست میآید.
– Random Forest: در این متد طبقهبندی از چندین درخت تشکیل شده که به منظور افزایش نرخ کلاسیفیکیشن طراحی شدهاند.
– Boosted: درختهایی از این جنس میتوانند برای رگرسیون مورد استفاده قرار گیرند.
– Rotation Forest: در این متد، همگی درختها توسط یک به اصطلاح Principal Component Analysis با استفاده از بخشی از دادههای تصادفی آموزش داده میشوند.
درخت تصمیمگیری زمانی مطلوب تلقی میشود که نشاندهندهٔ بیشترین دیتا با حداقل شاخه باشد و این در حالی است که الگوریتمهایی که برای ایجاد درختهای تصمیمگیری مطلوب طراحی شدهاند شامل CART ،ASSISTANT ،CLS و ID31415 میشوند. در واقع، هر کدام از این متدها باید تعیین کنند که بهترین راه برای تقسیم داده در هر شاخه کدام است که از متدهای رایجی که بدین منظور استفاده میشوند میتوان به موارد زیر اشاره کرد:
– Gini Impurity – Information Gain – Variance Reduction
استفاده از درختهای تصمیمگیری در یادگیری ماشینی چندین مزیت عمده دارد منجمله هزینه یا بهای استفاده از درخت به منظور پیشبینی داده با اضافه کردن هر به اصطلاح Data Point کاهش مییابد و این در حالی است که از جمله دیگر مزایایش میتوان به موارد زیر اشاره کرد:
– برای دادههای طبقهبندی شده و عددی به خوبی پاسخگو است. – میتواند مسائل با خروجیهای متعدد را مدلسازی کند. – میتوان قابلیت اطمینان به درخت را مورد آزمایش و اندازهگیری قرار داد. – صرفنظر از اینکه آیا فرضیات دادهٔ منبع را نقض میکنند یا خیر، این روش به نظر دقیق میرسد.
اما Decision Tree در ML معایبی نیز دارا است که از جملهٔ مهمترین آنها میتوان به موارد زیر اشاره کرد:
– حین مواجه با دادههای طبقهبندی شده با سطوح مختلف، دادههای حاصله تحتتأثیر ویژگیها یا صفاتی که بیشترین شاخه را دارند قرار میگیرد. – در صورت رویارویی با پیامدهای نامطمئن و تعداد زیادی پیامد بهم مرتبط، محاسبات ممکن است خیلی پیچیده شود. – ارتباطات بین نُودها محدود به AND بوده حال آنکه یک Decision Graph این اجازه را به ما میدهند تا نُودهایی داشته باشیم که با OR به یکدیگر متصل شدهاند.