From Wikipedia, the free encyclopedia
درخت تصمیمگیری (Decision Tree) یک ابزار برای پشتیبانی از تصمیم است که از درختها برای مدل کردن استفاده میکند. درخت تصمیم بهطور معمول در تحقیقها و عملیات مختلف استفاده میشود. بهطور خاص در آنالیز تصمیم، برای مشخص کردن استراتژی که با بیشترین احتمال به هدف برسد، بکار میرود. استفاده دیگر درختان تصمیم، توصیف محاسبات احتمال شرطی است.
در بازی بیست سؤالی، بازیکن باید یک درخت تصمیم در ذهن خود بسازد که به خوبی موارد را از هم جدا کند تا با کمترین سؤال به جواب برسد. در صورتی بازیکن به جواب میرسد که درخت ساخته شده بتواند به خوبی موارد را از هم جدا کند.
فرض کنید نمرات پارسال یک استاد به همکلاسیها را داریم و میخواهیم قبول یا مردود شدن خود را تخمین بزنیم؛ بنابراین یک جدول میکشیم که در آن ویژگیهایی که همه همکلاسیها دارند و برای ما مشخص هستند را فهرست میکنیم؛ ویژگیهایی مانند جنسیت، تأهل و اشتغال را میآوریم؛ بنابراین چنین نتیجه میشود:
در مجموعه داده گل زنبق، میخواهم نوع زنبقی را تخمین بزنم که بردار ویژگی آن x است؛ بنابراین در متلب:
clear all
load fisheriris ;% بارگیری مجموعهداده گل زنبق
iris_tree = fitctree(meas,species); % ایجاد درخت تصمیم
view(iris_tree,'mode','graph') % توضیح نمودار
x=[6 3 1.5 .3]; % زنبق من
disp(predict(iris_tree,x)) % نتیجه تصمیم
در آنالیز تصمیم، یک درخت تصمیم به عنوان ابزاری برای به تصویر کشیدن و آنالیز تصمیم، در جایی که مقادیر مورد انتظار از رقابتها متناوباً محاسبه میشود، استفاده میگردد. یک درخت تصمیم دارای سه نوع گرهاست:
یک درخت تصمیم میتواند خیلی فشرده در قالب یک دیاگرام، توجه را بر روی مسئله و رابطه بین رویدادها جلب کند.
مربع نشان دهنده تصمیمگیری، بیضی نشان دهنده فعالیت، و لوزی نشان دهنده نتیجه است.
مجموع دادهها را با نمایش میدهیم، یعنی ، به قسمی که و . درخت تصمیمگیری سعی میکند به صورت بازگشتی دادهها را به قسمی از هم جدا کند که در هر گِرِه متغیرهای مستقلِ به هم نزدیک شده همسان شوند.[1] هر گِره، زیر مجموعه ای از داده هاست که به صورت بازگشتی ساخته شدهاست. بهطور دقیقتر در گره اگر داده ما باشد، سعی میکنیم یک بُعد از متغیرهایی وابسته را به همراه یک آستانه انتخاب کنیم و دادهها را برحسب این بُعد و آستانه به دو نیم تقسیم کنیم، به قسمی که بهطور متوسط در هر دو نیم متغیرهای مستقل یا خیلی به هم نزدیک و همسان شده باشند. این بعد و آستانه را مینامیم. دامنه برابر است با و یک عدد صحیح است. برحسب به دو بخش و به شکل پایین تقسیم میشود:[1]
حال سؤال اینجاست که کدام بُعد از متغیرهای وابسته و چه آستانهای را باید انتخاب کرد. به زبان ریاضی باید آن یی را انتخاب کرد که ناخالصی داده را کم کند. ناخالصی برحسب نوع مسئله تعریفی متفاوت خواهد داشت، مثلاً اگر مسئله یک دستهبندی دوگانه است، ناخالصی میتواند آنتراپی داده باشد، کمترین ناخالصی زمانی است که هم و هم از یک دسته داشته باشند، یعنی در هر کدام از این دو گِرِه دو نوع دسته وجود نداشته باشد. برای رگرسیون این ناخالصی میتواند واریانس متغیر وابسته باشد. از آنجا که مقدار داده در و با هم متفاوت است، میانگینی وزندار از هر دو ناخالصی را به شکل پایین محاسبه میکنیم.[2] در این معادله ، و :
هدف در اینجا پیدا کردن آن یی است که ناخالصی را کمینه کند، یعنی . حال همین کار را به صورت بازگشتی برای و انجام میدهیم. بعضی از گرهها را باید به برگ تبدیل کنیم. معیاری که برای تبدیل یک گره به برگ از آن استفاده میکنیم، میتواند مقداری حداقلی برای (تعداد داده در یک گره) یا عمق درخت باشد. به قسمی که اگر با دو نیم کردن گِره یکی از معیارها عوض شود، گِره را به دو نیم نکرده آن را تبدیل به یک برگ میکنیم. معمولاً این دو پارامتر باعث تنظیم مدل (Regularization) میشوند.[2] در ابتدای کار گره شامل تمام دادهها میشود یعنی .
اگر مسئله ما دستهبندی باشد و باشد تابع ناخالصی برای گره میتواند یکی از موارد پایین باشد، در این معادلهها :[3]
ناخالصی گینی:
ناخالصی آنتروپی:
ناخالصی خطا:
در مسئله رگرسیون ناخالصی میتواند یکی از موارد پایین باشد:
میانگین خطای مربعات:
میانگین خطای قدر مطلق:
در میان ابزارهای پشتیبانی تصمیم، درخت تصمیم و دیاگرام تصمیم دارای مزایای زیر هستند:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.