جستجو برای:
  • صفحه اصلی
  • آموزش ها
    • آموزش های هک و امنیت
    • آموزش های شبکه
    • آموزش های لینوکس
    • آموزش های داده کاوی
    • آموزش های طراحی سایت و سئو
    • آموزش های برنامه نویسی
    • آموزش های آمار و احتمالات
  • اخبار
  • دوره های آموزشی
  • درباره ما
 
  • info@zodiaclp.com
  • دوره ها
  • بلاگ
زودیاک - آموزش هک و امنیت ، آموزش ابزار هک و امنیت
  • صفحه اصلی
  • آموزش ها
    • آموزش های هک و امنیت
    • آموزش های شبکه
    • آموزش های لینوکس
    • آموزش های داده کاوی
    • آموزش های طراحی سایت و سئو
    • آموزش های کاربردی
  • اخبار
  • دوره های آموزشی
  • درباره ما
0

ورود و ثبت نام

درخت تصمیم ( Decision tree ) چیست ؟

2020/12/16
ارسال شده توسط ارسلان بهزادی نژاد
آموزش ها ، آموزش های داده کاوی
217 بازدید
الگوریتم درخت تصمیم

درخت تصمیم ( Decision tree ) چیست ؟ بررسی کامل به زبان ساده

درود به همراهان همیشگی پلتفرم آموزشی زودیاک ، مرجع آموزش داده کاوی

در این آموزش قصد داریم به سراغ آموزش الگوریتم درخت تصمیم برویم اما به شیو ای ساده و گویا. اگر در ویکیپدیا یا بخش های دیگر اینترنت به سراغ یادگیری درت تصمیم بروید ، احتمالا با فرمول های متعدد روبرو شوید ، فرمول های information gain ، gain ratio ، آنتروپی ، هرس کردن و … و سردرگم بشوید و مفهوم اصلی درخت تصمیم را درک نکنید.

به همین دلیل در این آموزش ما قصد است داریم از صفر بدون اثبات شاخص ، فرمول نویسی و …. درخت تصمیم را کامل شرح دهیم. پس به سراغ اولین سوال میرویم :

درخت تصمیم چیست ؟

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

خروجی این الگوریتم به 2 صورت گراف (که شبیه درخت است ) و حال دیگر بصورت متن و توضیحات که همان قوانین هستند در دسترس کاربر قرار میگیرد که بدون شک شکل گراف برای تصمیم گیری و خواندن درخت ساده تر است. البته ناگفته نماند که حالت متنی و قوانین همان شرح درخت است که نوشتاری است و گرافیکی نیست.

اجازه بدهید یک مثال ساده ساده بزنم که بیشتر با درخت تصمیم آشنا شوید.

مثلا فرض کنید میخواهید در خصوص احتمال بارش باران و پیش بینی و تصمیم اینکه چتر همراه خودتان بیرون ببرید یا نه تصمیم بگیرید. این سوال از خودتان مطرح میکنید که الان چه فصلی است ، بهار ، تابستان ، پاییز یا زمستان. حال تصمیم شما انشعاب پیا می کند ، ممکن است بگویید الان تابستان است و احتمال باران آمدن صفر است پس بدون شک تصمیم بعدی این است که چتر همراه خود نبرید. اما اگر زمستان باشد ، به سراغ سوال بعدی می روید ، که آیا آسمان ابری است یا صاف ؟؟؟ اگر آسمان صاف باشد مثلا احتمال بارش 20% است و شاید چتر نبرید اما اگر ابری باشد احتمال بارش 90 % است پس بدون شک چتر ببرید.

مثال بالا یک مثال ساده بود که تنها 2 معیار فصل و ابری بودن در ان بود هر چند می شد این معیار ها بسیار زیاد باشند و یک درخت بزرگ شکل بگیرد.

مثال دیگری هم با رسم شکل توضیح می دهیم :

گراف درخت تصمیم گیری

به درخت بالا دقت کنید.

Decision tree بالا در خصوص این است که آیا یک کارمند پیشنهاد شغلی را قبول می کند یا خیر و چند پارامتر هم برای پذیرفتن یا نپذیرفتن قرار داده است. درخت با ریشه کلیدی شروع می شود که اگر حقوق بین 50 هزار دلار تا 80 هزار دلار نباشد به سمت راست درخت می رویم و در همان ابتدا پیشنهاد توسط کارمند رد می شود. اگر حقوق بین 50 تا 80 هزار دلار باشد ، وارد مرحله یعد برای پیش بینی و تصمیمی گیری می شویم ، که اِا محل کار کنار خانه است یا خیر . اگر محل دفنر کنا خانه نباشد هم پیشنهاد رد است. اگر دفتر کنار خانه باشد ، وارد مرحله بعد می شویم و اگر امکانات لازم فراهم شود کارمند پیشنهاد را قبول می کند اما اگر فراهم نشود ، پیشنهاد رد می شود.

حال قوانین و دانش درخت در اصل بصورت زیر است :

  • اگر حقوق بین 50 -80 هزار دلار نباشد پیشنهاد رد است
  • اگرحقوق بین 50-80 هزار دلار باشد و دفتر کنار خانه نباشد ، پیشنهاد رد می شود
  • اگر حقوق بین 50 – 80 هزار دلار باشد ، دفتر کنار خانه باشد ، امکانات فراهم نشود ، پشنهاد رد است
  • اگر حقوق بین 50 – 80 هزار دلار باشد ، دفتر کنار خانه باشد ، امکانات فراهم شود ، پیشنهاد قبول می شود

 گراف درخت تصمیم چگونه است ؟

گراف درخت تصمیم ( Decision tree ) یک شکل استناندارد دارد و اگر می خواهید کار دقیق و علمی انجام دهید باید  قوانین کشیدن گراف را رعایت کنید. هر گراف شامل 3 جز است :

  • ریشه ( یا گره تصمیم )
  • شاخه ( یا گره تصادفی)
  • برگ (یا گره پایانی )

ریشه همان گره یا node آغازین است که در درخت باید به شکل مربع کشیده شود. گره های تصادفی که احتمال وقوع را نشان می دهد باید به شکل دایره باشند و برگ ها که گره پایانی و دقیقا نشانگر پیامد نهایی و تصمیم گیری است به شکل مثلث کشیده می شود.

این الگوریتم جز کدام دسته بندی از الگوریتم های داده کاوی است ؟

الگوریتم Decision tree جز 2 دسته الگوریتم طبقه بندی و رگرسیون است.

برای آشنایی با الگوریتم های بیشتر به آموزش الگوریتم های داده کاوی رجوع کنید :

الگوریتم های داده کاوی

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

الگوریتم Decision tree

معیار انتخاب صفت

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

  • Information gain
  • Gain ratio
  • Gini index

خروجی هر معیار انتخاب صفت می تواند متفاوت باشد و در بهینگی ، حرص کردن و دقت متفاوت باشد. در اصل باید صفاتی انتخاب شود که بتواند بیشترین اطلاعات را بدهد و درخت بدرستی انشعاب پیدا کند. اگر بخواهید بر روی کاغذ این معیار ها را بررسی کنید هر کدام از معیار ها کلی معادلات ریاضی و … دارد اما اگر از نرم افزار های مانند رپیدماینر، کلمنتاین ، وکا ، یا از کتابخانه های پایتون استفاده کنید کلا در طول پروسه با هیچ معادله ریاضی در ارتباط نیستید و تنها می گویید که کدام معیار دوست دارید انخاب شود و خود ابزار تمام کار ها را انجام می دهد.

انواع درخت تصمیم :

درخت تصمیم انواع متفاوتی دارد که با نام های متفاوتی توسعه پیدا کرده اند. ذات تمامی این الگوریتم ها مشابه هم است و در همان معیار انتخاب صفت ، بهینگی و … متفاوت هستند اما در پایه و اساس یکی هستند. بدون شک الگوریتم پایه در گذر زمان دستخوش تغییراتی شده است و  بهبود پیدا کرده به بهترین تصمیم و بالاترین دقت احتمال برسیم. برخی از معروف ترین الگوریتم های درخت تصمیم به شرح زیر هستند :

  • ID3
  • 5
  • CART
  • CHID
  • Random Forest
  • و …

مثلا یکی از تفاوت های CART و C4.5  در همین نوع انتخاب معیار است. در درخت تصمیم C4.5 از Gain ratio استفاده می شود اما در درخت تصمیم CART از Gini index استفاده می شود.

با استفاده از چه نرم افزار های می توان این الگوریتم را پیاده سازی کرد ؟

این الگوریتم توسط ابزار های بسیاری پشتیبانی می شود به عنوان مثال :

  • رپیدماینر
  • وکا
  • کلمنتاین
  • SPSS
  • متلب
  • زبان برنامه نویسی پایتون
  • زبان برنامه نویسی R

الگوریتم درخت تصمیم گیری

مزایا و معایب درخت تصمیم :

مانند هر الگوریتم دیگر ، الگوریتم Decision tree  هم مزایا و معایبی دارد که باید با آنها آشنا شوید.

مزایا :

  • توانایی کار با داده های چند بعدی
  • دقت بسیار بالا
  • خروجی بسیار قابل تفسیر و روان است بصورتی که انسان با خواندن براختی ان را درک می کند
  • در تمامی تصمیم گیری ها و حوزه ها می تواند کاربرد داشته باشد
  • مقایسه های غیر ضروری را حذف می کند
  • مدل حریصانه ، بازگشتی از بالا به پایین و روش تقسیم و غلبه است
  • روش غیر پارامتریک است و نیاز به تنظیمات خاصی برای پیاده سازی ندارد و پیاده سازی عملا ساده است

معایب :

  • اگر تعداد دسته زیاد باشد و نمونه های آزمایشی کم ، احتمال خطا بالا می رود
  • هرس کردن درخت که عمل حذف یزر گره ها ار یک گره تصمیم است ، پر هزینه است
  • اگر همپوشانی دسته ها زیاد باشد عملکرد مطلوبی ندارد
  • اگر خطا در سطحی رخ بدهد ، این خطا به سطوح دیگر منتقل می شود و در عمق آن درخت پایین می رود.

بدون شک مزایا و معایب دیگری هم دارد.

اما باید بدانید این الگوریتم پرکاربرد ترین الگوریتم داده کاوی است و واقعا در زمینه طبقه بندی ، پیش بینی و تصمیم گیری بی همتاست.

امیدوارم از معرفی الگوریتم درخت تصمیم لذت برده باشید.

در آینده به بررسی الگوریتم های بیشتر می پردازیم.

شاد و پیروز باشید

اشتراک گذاری:
برچسب ها: الگوریتم داده کاویالگوریتم درخت تصمیمپایتونداده کاویرپیدماینرعلم داده

مطالب زیر را حتما مطالعه کنید

الگوریتم رگرسیون خطی چیست ؟

الگوریتم رگرسیون خطی چیست ؟ چگونه کار می کند و چه کاربردی دارد ؟

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

رمزنگاری و رمزگشایی چیست ؟ و بررسی انواع الگوریتم های رمزنگاری

کشف ورودی آسیب پذیر سایت

کشف ورودی آسیب پذیر سایت

افزایش حجم درایو C ، یک ترفند کاربردی

افزایش حجم درایو C ، یک ترفند کاربردی

بستن آپدیت ویندوز 10

بستن آپدیت ویندوز 10 به 4 روش ساده

ویژگی های ویندوز 10 که از وجود آنها بی خبر هستید

ویژگی های ویندوز 10 که از وجود آنها بی خبر هستید

قدیمی تر پیدا کردن IP در لینوکس های ورژن جدید
جدیدتر ویژگی های ویندوز 10 که از وجود آنها بی خبر هستید

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
  • محبوب
  • جدید
  • دیدگاه ها
قبلی بعدی
درباره زودیاک

پلتفرم آموزش زودیاک در سال 1398 در راستای افزایش دانش دوست داران حوزه فناوری اطلاعات ، تاسیس شده است.

  • info@zodiaclp.com
دسترسی سریع
  • آموزش ها
  • دوره ها
  • اخبار
  • حساب کاربری
  • سبد خرید
  • درباره ما

زودیاک در شبکه های اجتماعی
تمامی حقوق برای پلتفرم آموزشی زودیاک محفوظ می باشد.

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت