درخت تصمیم و رده بندی در R | با تابع c5.0

درخت تصمیم و رده بندی
در این نوشتار از مجله آرمان کامپیوتر با ذکر مثالی می‌خواهیم به کمک بسته C50 برای درخت تصمیم و رده بندی در R نحوه به کارگیری تابع c5.0 را فرابگیریم. البته در نوشتار دیگری به موضوع دسته بندی به کمک الگوریتم KNN نیز پرداختیم ولی این مطلب به موضع درخت تصمیم اختصاص دارد.

درخت تصمیم و رده بندی در R

در این متن به مثالی می‌پردازیم که مجموعه داده آن جالب است زیرا دارای ترکیبی از مقادیر عددی و رشته ها است. 690 رکورد وجود دار. ما داده ها را مستقیماً از سایت با استفاده از URL موجود در لیست کد زیر دریافت می کنیم. به منظور حفظ این مجموعه داده روی کامپیوتر شخصی از دستور write.table به صورت زیر استفاده می‌کنیم. به این ترتیب فایل crx شامل داده‌‌های مورد نظر خواهد بود. به منظور مشاهده چند رکورد ابتدایی این چارچوب داده از دستور head استفاده کنید. کافی است کدی به شکل زیر را در نرم افزار R اجرا نمایید. شش سطر ابتدایی چارچوب داده crx به شکل زیر قابل مشاهده خواهد بود. در مرحله بعد می خواهیم ردیف ها را تصادفی کنیم. تا اینجای کار، ردیف ها بر اساس آخرین ستون، V16 مرتب شده اند، بنابراین تمام مثبت ها در بالا و همه منفی ها در پایین هستند. (این را با tail(crx) تأیید کنید.) می‌توانیم ردیف‌ها را با فرمانی که در سطر بعدی مشاهده می‌کنید به صورت تصادفی درآورده، سپس داده‌ها را به یک ماتریس ویژگی، X و یک بردار هدف یا برچسب‌ها، y تقسیم کنیم. به این ترتیب کدهای بعدی به تولید بخش آموزشی در الگوریتم دسته بندی اختصاص پیدا می‌کنند. همچنین بخش آزمایشی (Test) هم از مجموعه داده اصلی جدا می‌شود.

نصب و راه اندازی بسته C50 و دسته بند درخت تصمیم

دو سطر زیرین را برای نصب و راه اندازی کتابخانه C50 به کار ببرید. در گام بعدی، می‌توانیم یک مدل بسازیم، و سپس خلاصه‌ای از خروجی آن را بررسی کنیم. توجه داشته باشید که با علامت “::” مشخص می‌کنیم چه تابعی از چه کتابخانه‌ای مورد استفاده قرار گرفته است. به قطعه کد بعدی که الگوریتم را روی مجموعه داده آزمایشی اجرا می‌کند توجه کنید. همانطور که مشخص است، بخش یا پارامتر اول، داده‌ها و بخش یا پارامتر دوم هم برچسب ها را برای هر مشاهده تعیین کرده است. بنابراین، مدل ساخته شده و خروجی حاصل از آن اساساً می گوید که درخت داده ها را در یک نقطه تقسیم می کند، خواه متغیر V9 دارای مقدار t یا f باشد یا نه. این خروجی بسیار مفصل است برای مثال عبارت خروحی

V9 = f: – (295/19)

به این معنی است که V9 = f متغیر بعدی یا V16 را  را به درستی 295 بار و به اشتباه 19 بار طبقه بندی کرده است. همچنین خط زیر نیز دارای تفسیر مجزایی است.

V9 = t: + (305/66)

به این معنی است که V9 = t متغیر V16 را به درستی 305 مرتبه و به اشتباه 66 بار طبقه بندی کرده است. این تجزیه و تحلیل در ادامه در قالب جدولی تکرار می شود. همچنین بیان می کند که 14.2 درصد میزان خطا وجود دارد که 85 رکورد از 600 رکورد استفاده شده برای آموزش را شامل می شود. درخت تصمیم و رده بندی در R

پش بینی در مدل درخت تصمیم و رده بندی

می‌توانیم با وارد کردن شی model در تابع ()predict، به همراه داده‌هایی که می‌خواهیم پیش‌بینی کنیم، طبقه بندی را برای مجموعه آزمایشی اجرا کنیم. آرگومان type=”class” مشخص می‌کند که ما برچسب‌های کلاس واقعی را به‌عنوان خروجی می‌خواهیم، نه احتمال اینکه برچسب کلاس یک یا آن برچسب باشد. بنابراین، بردار عامل p، برداری است که شامل برچسب‌های مثبت و منفی است، درست مانند حالتی که بردار y را به دوبخش trainy و testy تقسیم کردیم. به این ترتیب برچسب‌های جدید برای هر مشاهده از ماتریس textX بدست آمده و می‌توانیم خطا دسته بندی را هم محاسبه کنیم. اگر p را هم فراخوانی کنید، شماره مشاهده و احتمال تعلق به گروه + یا – را مشاهده خواهید کرد. البته توجه داشته باشید، چون در تشکیل بخش آموزشی و آزمایشی، روش نمونه گیری تصادفی را اجرا کرده‌ایم، ممکن است نتایج حاصل از عملیات شما با خروجی ظاهر شده در زیر یکسان نباشد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.