درخت تصمیم در یادگیری ماشین
درخت تصمیم یا Decision Tree یکی از کلیدیترین مباحث در یادگیری ماشین است. در این پست، گام به گام مبحث درخت تصمیم در یادگیری ماشین را به شما آموزش میدهم. با من و هوسم جان همراه باشید…
فهرست مطالب آموزش درخت تصمیم در یادگیری ماشین
همه چیز از درخت شروع میشود! پس ابتدا میخواهم از درخت برای شما بگویم. بعد که دیدگاه من و شما نسبت به درخت شبیه هم شد، سراغ ساختمان داده درختی میرویم.
درخت و یادگیری ماشین
طبیعتا، از درخت گفتن کار آسانی نیست! اما، من میخواهم اجزا و ویژگیهای مهم درخت مرتبط با علوم کامپیوتر و یادگیری ماشین را تشریح کنم. یک درخت واقعی ویژگیهای زیر را دارد:
- ریشه
- تنه
- شاخهها
- برگها
بیایید با توجه به شکل زیر، از پایین به بالا به درخت نگاه کنیم؛ ابتدا، ریشه و سپس تنه قرار دارد. سپس، به شاخهها میرسیم. شاخهها قاعده و اصول مشخصی دارند. در درخت، شاخههای کوچک تا شاخههای بزرگ داریم. بهصورت کلی، تنه به یکسری شاخه بزرگ متصل هست. از هر شاخه بزرگی، مجموعهای شاخه با اندازه کوچکتر رشد کردهاند. این روند ادامه دارد و از هر شاخهای یکسری شاخه کوچکتر از خودش رشد کرده است. نهایتا، به برگها میرسیم. برگها نقطه پایان رشد درخت هست. یعنی، دیگه از دل برگ، برگ یا شاخه یا المان دیگری رشد نمیکند.
حالا که با درخت آشنا شدید، میتوانیم بحث ساختمان داده درختی را شروع کنیم. آشنا شدید! انگار نمیدونستید درخت چیه! 😅
ساختمان داده درختی (Tree Data Structure)
ساختمان داده یکی از پایهایترین مباحث حوزه علوم کامپیوتر هست. نیازی نیست که عمیقا وارد این مبحث شویم. به همین اندازه بسنده کنیم که:
ساختمان داده، شامل روشها و ساختارهایی برای ذخیرهسازی و مدیریت دادهها به شکل کارآمد و بهینه است.
حالا، اینجا صحبت ما روی ساختمان داده درختی است که روشی مناسب برای نمایش رابطه سلسله مراتبی در دادههاست. طبق شکل زیر، ساختمان داده درختی یک ساختار داده سلسله مراتبی هست که از یکسری گره (Node) تشکیل شده است. اما باید این ساختار درختی را با جزئیات بیشتری بررسی کنیم:
- در ساختار درختی، نگاه از بالا به پایین داریم. برخلاف درخت واقعی که از پایین به بالا نگاه میکردیم.
- سه نوع گره یا Node در ساختار درختی داریم.
- گره قرمز: گره ریشه یا Root Node نام دارد. همه چیز از این گره شروع میشود و گره والد هم نام دارد.
- گره آبی: گره داخلی یا Inner Node نام دارد. این گره هم والد هست و هم فرزند!
- گره سبز: برگ یا Leaf Node نام دارد. این گره والد نیست و فقط فرزند هست!
- فقط یک گره ریشه داریم، اما ممکن هست بیش از یک گره داخلی و برگ داشته باشیم.
- شاخه یا یال یا Branch: متصلکننده گرهها.
- زیردرخت یا Sub Tree: یک تکه از درخت را زیردرخت یا Sub Tree مینامیم. مستطیل سبز!
- عمق یا Depth: تعداد یالهای بین گره ریشه تا یک گره مشخص. مثلا، عمق درخت از بالا تا پایین، سه هست. یالهای بنفش!
- بسه دیگه! 😀
خُب خُب، دیگر میتوانیم وارد بحث اصلی یعنی درخت تصمیم در یادگیری ماشین شویم.
درخت تصمیم یا Decision Tree
تمامی توضیحاتم تا اینجا برای این بود که کلمه درخت در درخت تصمیم را درک کنید. پس آنچه که تا اینجا ما میدانیم این هست که:
درخت تصمیم یک الگوریتم یادگیری ماشین مبتنی بر ساختار داده درختی با نمایش سلسله مراتبی است.
با تعریف بالا کلمه تصمیم یا Decision در درخت تصمیم هم معنا پیدا میکند؛ یک الگوریتم یادگیری ماشین که میتواند در تسکهای رگرسیون و طبقه بندی استفاده شود. یعنی، تصمیمگیری میکند! اما میخواهم به کلمه تصمیم از یک زاویه دیگر هم نگاه کنید؛ در شکل زیر، یک درخت تصمیم را مشاهده میکنید. این نمایش برای شما آشناست. همان گره ها و یال ها که در ساختار داده درختی دیدیم. سه نوع گره داشتیم: گره ریشه، گره داخلی و برگ. نکته مهم این هست که گره داخلی با نام گره تصمیم یا Decision Node شناخته میشود. چرا؟ چون واقعا در این نوع گره، تصمیم گیری انجام میشود. مثلا به گره بنفش x1<=1 نگاه کنید. مشخص است که این گره فیچر x1 از دیتاست را بررسی میکند:
- اگر مقدار x1 از 1 کمتر باشد، به شاخه چپ میرویم.
- درغیراینصورت، به شاخه راست میرویم.
در ادامه، میخواهم درباره نحوه تفسیر درخت تصمیم بالا را تشریح کنم.
تفسیر درخت تصمیم در یادگیری ماشین
فعلا کاری به این نداریم که درخت تصمیم بالا چگونه ساخته شده است. الان تمرکزمان روی درک نحوه کار کردن درخت تصمیم هست. درخت بالا مربوط به یک دیتاست طبقه بندی با دو کلاس هست که هر نمونه شامل دو ویژگی عددی x1 و x2 است. بیایید برای یک نمونه داده با مقادیر x=[x1, x2]=[0.3, 0.5] ببینیم چه اتفاقی میافتد:
- از گره ریشه شروع میکنیم. گره ریشه روی x1 تعریف شده است.
- اگر مقدار x1 در نمونه ما کمتر از 0.95- باشد، داده به کلاس قرمز تعلق دارد.
- اما اینطور نیست و باید از شاخه راست وارد یک گره تصمیم شویم.
- این گره تصمیم بازهم روی x1 تعریف شده است. با توجه به مقدار x1، شاخه چپ لطفا!
- گره تصمیم جدید روی x2 تعریف شده است. با توجه به مقدار x2 شاخه چپ انتخاب میشود.
- بنـــــابــــراین، نمونه داده ما به کلاس آبی تعلق دارد. 😊
تمرین: برای داده x=[x1, x2]=[-0.95, 0.4] و x=[x1, x2]=[0.1.5, -0.5] همین روند بالا را طی کنید. جواب را کامنت کنید.
بسیارخب، دیگر وقتش رسیده که نحوه تشکیل یک درخت تصمیم از روی دیتاست را یاد بگیرید. ابتدا، بیایید نگاهی به چند نمونه درخت تصمیم رایج بیندازیم.
ادامه دارد…
مطالب زیر را حتما مطالعه کنید
آموزش یادگیری ماشین رایگان
الگوریتم k means
نرمال سازی داده در یادگیری ماشین
یادگیری گروهی
ماشین بردار پشتیبان
الگوریتم KNN
4 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
تازه داشتیم گرم میشدیم 🙂
ادامش بدید مهندس
دمتون گرم
بله، ادامه میدیم.
ممنون
عاشق نوت هاییم که گوشه کنار متن رها کردین XD
خیلی توضیحات خوب و صمیمی و روانه
با اینکه n بار دوره های ml رو دیدم، با خوندن اولین اپیزود این دوره نتونستم ولش کنم و به اینجا رسیدم…….
خداقوت 🙂
سلام 😊
خیلی خوشحالیم که از نوتها و توضیحات خوشتون اومده. کامنت شما به ما انگیزه و انرژی میده.😊 اینکه با خوندن اولین اپیزود جذب آموزش شدید و تا اینجا ادامه دادید، برامون واقعا ارزشمنده.
براتون آرزوی موفقیت داریم 🌹