آشنایی جامع با درخت تصمیم و اصلی ترین کاربرد و مفاهیم آن در ماشین لرنینگ

درخت تصمیم (Decision Tree) روش کاربردی در جهت به نمایش درآوردن روند تصمیم گیری به وسیله ی ساختاری شاخه دار یا درخت مانند می باشد.
درخت تصمیم نیز یکی از روش های دسته بندی (classification) مانند رگرسیون در ماشین لرنینگ می باشد.
امروزه روش های هوش مصنوعی و ماشین لرنینگ در پروژه ها بسیار کاربردی می باشند به همین سبب آشنایی با درخت تصمیم می تواند در این زمینه بسیار کاربردی باشد.
البته لازم به ذکر است که لازمه استفاده از ماشین لرنینگ و هوش مصنوعی و روش های آن ها، تسلط بر زبان برنامه نویسی و گذراندن دوره های آموزش پایتون می باشد.
ما در این مقاله به بررسی صفر تا صد درخت تصمیم در ماشین لرنینگ خواهیم پرداخت.
آشنایی با مفهوم درخت تصمیم در ماشین لرنینگ
درخت تصمیم روشی در ماشین لرنینگ می باشد که در جهت ساختار بندی به الگوریتم ها کاربرد دارد.
درخت تصمیم در جهت تقسیم ویژگی های مجموعه داده و به همراه تابع هزینه (cost function) استفاده می شود.
این الگوریتم پیش از بهینه سازی و حذف شاخه های اضافه، به صورتی رشد می کند که برخوردار از ویژگی های نامرتبط با مسئله می باشد.
به همین خاطر نیز برای حذف شاخه های اضافی از عملیات هرس کردن (Pruning) استفاده می شود.
در الگوریتم درخت تصمیم برای جلوگیری از پیچیدگی بیش از حد درخت و یا ( Overly Complex Tree) پارامتر هایی مانند عمق درخت را نیز می توان تنظیم کرد.
از درخت های تصمیم متعددی در ماشین لرنینگ برای حل مسائلی مانند گروه بندی و دسته بندی اشیاء بر اساس ویژگی های مشخص استفاده می شود.
این روش در رگرسیون و یادگیری برای پیش بینی نتایج پیوسته داده های پیش بینی نشده نیز کاربرد دارد.
مهم تربن مزیت استفاده از ماشین لرنینگ در پروژه ها، سادگی آن می باشد.
استفاده از ماشین لرنینگ موجب می شود که فرآیند تصمیم گیری ملموس و قابل درک شود.
اما لازم به ذکر است که در مسائل ماشین لرنینگ با افزایش شاخه های درخت تصمیم ممکن است درک و استفاده از آن به دلیل دشواری درخت، پیچیده شود.
به همین سبب لازم است به هرس کردن درخت در این شرایط توجه کنید.
درخت تصمیم فرآیندی در جهت مدل سازی تصمیم ها و خروجی آن و قرار دادن تصمیم در ساختار درخت می باشد.
این روش، فرآیندی در جهت محاسبه پتانسیل موفقیت دنبال های مختلف تصمیم گیری در جهت رسیدن به هدف مشخص است.
درخت تصمیم به تنهایی و پیش از ورود آن به ماشین لرنینگ نیز به صورت مستقل وجود داشته است.
از درخت تصمیم می توان در جهت تصمیم های عملیاتی مدل ها به شکل دستی همانند یک فلوچارت میز استفاده نمود.
درخت تصمیم در کسب و کار، اقتصاد، مدیریت عملیات، در نقش رویکردی و در جهت تجزیه و تحلیل تصمیم گیری های سازمانی نیز کاربرد دارد.
درخت تصمیم به صورت مدل سازی پیش بینی کننده می تواند در نگاشتن تصمیم ها و یا راه حل های مختلف در جهت دستیابی به خروجی کمک کننده باشد.
درخت تصمیم از گره های متعددی ساخته شده است.
گره ریشه (Root Node) محل شروع درخت تصمیم بوده که منشا تمامی داده های مسئله می باشد.
گره برگ (Leaf Node) پایان هر شاخه درخت و یا خروجی نهایی مجموعه تصمیم های می باشد.
هر شاخه درخت تصمیم در ماشین لرنینگ برخوردار از یک گره برگ می باشد.
در درخت تصمیم ماشین لرنینگ ویژگی داده، در گره های شاخه ها و نتایج آن نیز در برگ شاخه ها قرار داده شده است.
درخت تصمیم به دلیل ساختار ساده در نشان دادن مدل ها در ماشین لرنینگ، به محبوبیت زیادی دست یافته است.
یکی از مهم ترین بخش های ماشین لرنینگ جهت توضیح خروجی یک مدل برای انسان ها، توضیح پذیری می باشد که می توان گفت مهم ترین بخش یک پروژه است.
این فرآیند را می توان به خوبی در درخت تصمیم جای داد.
بهینه سازی وظایف بدون دخالت و یا کنترل مستقیم انسان نیز موجب قدرتمند شدن ماشین لرنینگ شده است. اما در بیشتر مواقع توضیح خروجی مدل ها کاری دشوار است.
دلیل استفاده از فرآیند تصمیم در زمانی که مدل از ساختار درختی استفاده کند، مشخص می شود. به این دلیل که هر تصمیم را می توان به صورت شاخه ای درخت نشان داد.

آشنایی با مهم ترین اصطلاحات درخت تصمیم در ماشین لرنینگ
در این بخش به آشنایی بیشتر با مهم ترین اصطلاحات درخت تصمیم خواهیم پرداخت:
گره ریشه (Root Node): گره ریشه نشان دهنده تمامی مجموعه داده مسئله می باشد و می تواند به صورت دو یا چند مجموعه همگن (Homogeneous) باشد. این گره بالاترین و اولین گره درخت تصمیم می باشد.
تفکیک (Splitting ): تفکیک یا تقسیم بندی به عملکردی در جهت تقسیم کردن گره ها به چند زیر گره (Sub-Node) گفته می شود.
گره تصمیم (Decision Node): زمانی که یک گره به چند زیر گره تقسیم می شود به هر زیر گره یک گره تصمیم گفته می شود.
گره برگ یا گره انتهایی (Leaf Terminal Node): به گره های انتهایی شاخه که دیگر قابل تفکیک نمی باشد گره برگ گفته می شود.
هرس کردن( Pruning): گاهی لازم است بخشی از درخت تصمیم حذف شود. هرس کردن به منظور حذف زیر گره هایی از گره های تصمیم انجام می گیرد. می توان گفت هرس کردن در تضاد با تفکیک است.
شاخه یا زیر درخت (Brunch | sub-Tree): به تمامی قسمت ها و زیر بخش ها درخت تصمیم شاخه یا زیر درخت می گویند.
گره والد و فرزند( Parent and child Node) : در تقسیم گره به زیر گره ها، گره والد زیر گره نام دارد و این زیر گره های ایجاد شده نیز گره فرزند نام دارد.
نحوه کار درخت تصمیم در ماشین لرنینگ به چه صورتی است؟
در درخت تصمیم در جهت پیش بینی کلاس های مورد نظر مجموعه ای از داده مسئله، رویکرد الگوریتم از ریشه گره درخت شروع می شود.
روش کار این الگوریتم به شیوه ای می باشد که ویژگی ریشه ها را با ویژگی داده ها مقایسه نموده و بر اساس این مقایسه به عمل آمده، شاخه ها را دنبال نموده و به گره بعدی می رود.
سپس در گره بعدی، الگوریتم مجدد مقدار ویژگی داده ها را به زیر گره تقسیم نموده و به این صورت فرآیند ایجاد درخت را طی می کند.
و این روند به همین صورت تا رسیدن به گره برگ یا گره انتهایی ادامه می یابد.
جهت درک بهتر این فرآیند به الگوریتم زیر توجه نمایید:
مرحله اول: الگوریتم درخت تصمیم از گره ریشه آغاز به کار می کند که از مجموعه داده تشکیل شده است.
مرحله دوم: به کمک فرآیند سنجیدن انتخاب ویژگی، بهترین ویژگی در یک مجموعه داده برگزیده می شود.
مرحله سوم: تقسیم ریشه به زیر مجموعه هایی که از مقادیر مناسب برای برترین ویژگی ها باشند.
مرحله چهارم: تولید گره هایی در درخت تصمیم که از بهترین ویژگی ها تشکیل شده اند.
مرحله پنجم: با کمک زیر مجموعه های ایجاد شده از مجموعه داده که در مرحله سوم گفته شد، درخت تصمیم جدیدی به صورت بازگشتی ایجاد می شود.
این روند تا جایی پیش می رود که دیگر نمی توان گره ها را بیشتر طبقه بندی نمود و گره نهایی به عنوان گره برگ و یا گره انتهایی به دست می آید.
روش سنجش انتخاب ویژگی های درخت تصمیم در ماشین لرنینگ به چه صورتی است؟
در حین پیاده سازی درخت تصمیم، مهم ترین مسئله چگونگی انتخاب بهترین ویژگی برای گره ریشه و گره فرعی می باشد.
برای حل این مسئله روشی تحت عنوان ( معیار یا سنجش انتخاب ویژگی یا Attribute Selection Measure) وجود دارد.
به کمک این روش می توان بهترین ویژگی را در جهت گره ریشه و یا دیگر گره های درخت انتخاب نمود.
روش سنجش انتخاب ویژگی از دو رویکرد اصلی تشکیل شده است که شامل موارد زیر است:
- به دست آوردن اطلاعات (Information Gain)
- شاخص جینی (Gini Index)
آشنایی با تقسیم بندی باینری در درخت تصمیم
برای تقسیم بندی بخش های مختلف درخت برای کاهش ابعاد آن، تمامی ویژگی ها و نقاط تقسیم مختلف به کمک تابع هزینه بررسی می شود.
در این روش از تقسیم با بهترین هزینه و یا همان کمترین هزینه استفاده شده است.
در انشعاب اول یا ریشه درخت، تمامی ویژگی ها در نظر گرفته می شود و داده های آموزشی بر اساس این ریشه ها به زیر گروه هایی تقسیم می شوند.
بر اساس تعداد ویژگی ها می توان انشعابات و تقسیم بندی جدید را در نظر گرفت و با استفاده از تابع بررسی می شود که دقت به دست آمده برای هر بخش به چه میزان است؟
در مرحله بعدی کم هزینه ترین بخش انتخاب می شود.
این الگوریتم برخوردار از ماهیت بازگشتی می باشد . به این صورت که می توان زیر گروه های تشکیل شده را با استفاده از یک استراتژی ساده به گروه های کوچک تری تقسیم کرد.
به این صورت به این روش الگوریتم حریصانه نیز گفته می شود؛ زیرا این الگوریتم تمایل به کاهش هزینه ها دارد.
این موارد نیز موجب می شود تا بتوانیم گره ریشه را به شکل بهترین پیش بینی کننده و یا دسته بندی در نظر بگیریم.

آشنایی با میزان هزینه تقسیم درخت تصمیم
در این بخش به شرح بیشتری از تابع هزینه ای که برای مسائل دسته بندی و رگرسیون کاربرد دارد خواهیم پرداخت:
در این مسائل تابع هزینه در تلاش برای یافتن شاخه های همگن یا شاخه هایی با ویژگی های مشابه و نتایح مشابه می باشد.
برای مثال در پیش بینی قیمت مسکن درخت تصمیم با در نظر گرفتن هر ویژگی در داده های آموزشی اقدام به تقسیم بندی می نماید.
میانگین نتایج ورودی داده های آموزشی در یک گروه خاص به عنوان پیش بینی کننده یک گروه در نظر گرفته می شود.
در تابع فوق برای تمامی نقاط داده هایی اعمال می شود و با استفاده از هزینه برای تمامی کاندید ها ، تقسیم بندی هایی محاسبه خواهد شد.
در این بخش نیز انشعاباتی انتخاب شده که هزینه کمی دارد.
در این مسئله از رابطه زیر استفاده می شود
G= sum (pk*(1–pk))
یک نمره جینی ایده ای از میزان مناسب بودن یک تقسیم را به واسطه ترکیب پاسخ و نتایج کلاس ها در تقسیم بندی ها و گروه های ایجاد شده ارائه می نماید.
در رابطه فوق پارامتر pk نشانه مقدار ورودی های کلاس یکسان موجود می باشد.
در این حالت مقدار pk می تواند صفر یا یک و مقدار G صفر می باشد.
در چه زمانی تقسیم بندی انشعابات درخت تصمیم متوقف خواهد شد؟
همانطور که می دانید یک مسئله دارای مجموعه بزرگی از داده می باشد که حجم زیاد داده باعث ایجاد تقسیم بندی و انشعابات بالایی می شود و به این صورت درخت بزرگ و پیچیده ای به وجود خواهد آمد.
درخت هایی به این صورت نیز موجب ایجاد بیش برازش می شوند.
به همین سبب بهتر است زمان توقف تقسیم شاخه های درخت بررسی شود.
روش پیش بینی زمان تقسیم بندی شاخه های درخت به شکل زیر است:
- یکی از بهترین روش های انجام این کار تنظیم حداقل تعداد ورودی آموزشی برای استفاده هر برگ می باشد
- روش دیگر نیز تنظیم حداکثر عمق مدل ها می باشد (منظور از حداکثر عمق، طولانی ترین مسیر از رشته تا یک برگ می باشد)
منظور از هرس کردن درخت تصمیم چیست؟
کارایی درخت تصمیم در ماشین لرنینگ با استفاده از هرس کردن افزایش می یابد.
هرس کردن به معنای حذف شاخه هایی است که از ویژگی های کم اهمیت تری برخوردار می باشند.
به این صورت می توان پیچیدگی درخت ها را کاهش داد و به این صورت نیز دقت پیش بینی الگوریتم با کاهش بیش برازش نیز افزایش می یابد.
هرس کردن درخت تصمیم از ریشه یا برگ آغاز می شود:
- هرس خطای کاهش یافته: این روش ساده ترین نوع هرس کردن به شمار می رود و از برگ شروع شده و هر گره با محبوب ترین کلاس را در برگ حذف نموده و تا زمانی که دقت مسئله کاهش نیابد این کار ادامه دارد.
- هرس پیچیدگی هزینه: این روش، روش پیچیده تری است که در آن می توان از یک پارامتر یادگیری به نام آلفا در جهت سنجش شیوه حذف گره ها بر اساس اندازه زیر درخت ها استفاده نمود (به این روش، روش هرس ضعیف ترین پیوند نیز گفته می شود.)
کلام آخر
در این مقاله به آشنایی جامع با درخت تصمیم در ماشین لرنینگ پرداخته شود.
این روش در ماشین لرنینگ در حل بسیاری از پروژه ها کاربردی می باشد.
به دلیل کاربرد فراوان ماشین لرنینگ در آینده نزدیک و بازار کار خوب ماشین لرنینگ، بهتر است هرچه سریع تر اقدام به یادگیری ماشین لرنینگ و هوش مصنوعی و زیر گروه ها و مفاهیم آن ها نمایید.
لازمه این کار نیز آموزش پایتون، ماشین لرنینگ و هوش مصنوعی در وب سایت جامع و آموزشی مگاپایتون می باشد.
دانستنی های کاربردی جهت آشنایی با زبان برنامه نویسی پایتون
زبان برنامه نویسی پایتون چه کاربرد و ویژگی هایی دارد؟
چگونه به یک برنامه نویس ماهر تبدیل شویم؟
با یادگیری چه زبانی می توانید به یک برنامه نویس ماهر تحت وب تبدیل شوید؟
آشنایی با معنای اوپن سورس و مزایای آن در برنامه نویسی
زبان برنامه نویسی پایتون در دنیای امروز چه کاربردی دارد؟
یادگیری برنامه نویسی پایتون برای مبتدیان
آموزش چگونگی شروع یادگیری زبان برنامه نویسی پایتون
شروع یادگیری زبان برنامه نویسی پایتون : آشنایی با توابع پایتون
شروع یادگیری زبان برنامه نویسی پایتون : عملگر های شرطی
شروع یادگیری زبان برنامه نویسی پایتون (بخش آخر)
آشنایی با سایت های آموزشی رایگان و معتبر جهت یادگیری زبان برنامه نویسی پایتون
چرا زبان برنامه نویسی پایتون به یک زبان قدرتمند تبدیل شده است؟
آشنایی با قدرت و ویژگی های فریم ورک ها در زبان برنامه نویسی پایتون
آشنایی با دیکشنری در زبان برنامه نویسی پایتون
آشنایی با پردرآمدترین زبان های برنامه نویسی سال های اخیر در ایران
چه زمانی استفاده از زبان برنامه نویسی پایتون می تواند برای شما سود آور باشد؟
چگونه وارد دنیای برنامه نویسی پایتون شویم؟
معرفی ۱۰ شرکت مشهور و رده بالا که از پایتون استفاده می کنند
چرا زبان برنامه نویسی پایتون برای تازه کاران زبان مناسبی می باشد؟
آشنایی با مفاهیم پایه و کاربردی در زبان برنامه نویسی پایتون
آشنایی با ویژگیهای حرفهای پایتون که موجب سهولت در انجام کارها میشود
۱۵ کتابخانه مهم و پرطرفدار در زبان برنامهنویسی پایتون
۱۰ کاربرد اصلی استفاده از زبان برنامه نویسی پایتون در پروژه های بزرگ سازمانی
اصلی ترین عواملی که موجب کند بودن زبان برنامه نویسی پایتون شده است!
چقدر طول میکشد تا به برنامهنویسی ماهر در زبان پایتون تبدیل شویم؟
آشنایی با ۶ رویکرد کاربردی زبان برنامه نویسی پایتون
آشنایی با دکوراتورها در زبان برنامه نویسی پایتون
12 مزایا و معایب زبان برنامه نویسی پایتون برای توسعه وب
مقدمه ای بر یادگیری ماشین یا ماشین لرنینگ و کاربرد های آن
یادگیری ماشین با زبان برنامه نویسی پایتون چه کاربردهایی دارد؟
آشنایی با پیش نیازهای اصلی ماشین لرنینگ
بررسی جامع انواع مدل های ماشین لرنینگ و کاربردهای آن
مهم ترین تفاوت های هوش مصنوعی و یادگیری ماشین
آشنایی با درآمد و بازار کار ماشین لرنینگ در سال 2022
آشنایی جامع با هوش مصنوعی و کاربردهای AI
آشنایی جامع با یادگیری نظارت شده در ماشین لرنینگ
6 نکته کاربردی یادگیری ماشین لرنینگ
4 کاربرد اصلی یادگیری نظارت نشده در ماشین لرنینگ
4 کاربرد مهم ماشین لرنینگ در دیجیتال مارکتینگ
7 کاربرد ماشین لرنینگ و هوش مصنوعی در شبکه اجتماعی اینستاگرام
بررسی ۵ کاربرد جالب ماشین لرنینگ در سال ۲۰۲۲
آشنایی با سه مسیر اصلی جهت یادگیری ماشین لرنینگ
۹ کاربرد اصلی دیپ لرنینگ در زندگی روزانه
۶ ایده برای پروژه های یادگیری ماشین لرنینگ برای افراد مبتدی و تازه کار
شش زبان برنامه نویسی برتر در حوزه واقعیت مجازی
آشنایی با ۹ سرور دیسکورد برای علاقه مندان به زبان برنامه نویسی پایتون و ماشین لرنینگ
آشنایی با برترین نرم افزارهای هوش مصنوعی و کاربردهای آن
آشنایی جامع با اصلی ترین روش های یادگیری عمیق
آشنایی جامع با تمامی مباحث و مهم ترین کاربردهای شبکه عصبی کانولوشن
آشنایی جامع با درخت تصمیم و اصلی ترین کاربرد و مفاهیم آن در ماشین لرنینگ
درباره Matinus
با ورود به کارشناسی مهندسی کامپیوتر گرایش نرم افزار از سال 1385 به دنیای زیبای آی تی وارد شدم و فوق لیسانسم رو در رشته آی تی گرایش تجارت الکترونیک از دانشگاه خواجه نصیر طوسی گرفتم. از همون دوران شروع به ساختن وب سایت ها و سئو کردن اونها کردم. زمانی که هیچ کس نمی تونست سئو چیه! یکی پس از دیگری زبان های برنامه نویسی رو تست کردم؛ مثل سی پلاس پلاس ؛ سی شارپ ؛ جاوا ؛ جاوا اسکریپت ؛ سوییفت و .... با همشون برنامه نوشتم تا رسیدم به پایتون و با توجه به تجربه خودم فهمیدم که به این زبان بیشتر علاقه دارم چون در مدت سه ماه اول 24 ساعته پشت کامپیوتر بودم و با برترین اساتید جهان پایتون خودم رو ارتقا دادم تا پس از دو سه سال در پایتون سنیور شدم و اکنون می تونم اونو تدریس کنم. آموزش پایتون من زیادی وسواس گونه و جامعه و من پشت صحنه دستورات و حافظه رو بشما می گم که هیچکس این رو به شما نمیگه.... چون بلد نیستن!!! فقط بلدن از دستورات استفاده کنن. مطمئن باش بعد از آموزش پایتون من خیلی حرف برای گفتن داری و میتونی وارد دنیای هوش مصنوعی و یادگیری ماشین و علوم داده ها بشی و یک شغل بسیار پردرآمد در خارج از کشور بگیری ......
نوشتههای بیشتر از Matinus
دیدگاهتان را بنویسید