رده بندی در R با الگوریتم KNN

رده بندی در R

در نوشتار طبقه بندی آماری از مجله آرمان کامپیوتر با مفاهیم اولیه طبقه بندی یا رده بندی آشنا شدید. در این نوشتار می‌خواهیم با رده بندی در R با الگوریتم KNN آشنا شده و آن را به کار گیریم. البته برای روشن شدن موضوع یک مثال از تابع KNN نیز ارائه خواهیم داد. k- نزدیکترین طبقه بندی همسایه (k-nearest neighbor classification) برای برچسب گذاری مجموعه تست با استفاده از مثال‌هایی که توسط مجموعه آموزشی ایجاد شده است، مورد استفاده قرار می‌گیرد. برای هر ردیف مجموعه تست، k نزدیکترین بردارهای مجموعه آموزشی (در فاصله اقلیدسی) مورد جستجو قرار گرفته و مشاهدات با کمترین فاصله، در طبقه بندی مشابه با مثال مورد نظر قرار می‌گیرند.

رده بندی در R با الگوریتم KNN

KNN یکی از معروف و در عین حال، ساده‌ترین الگوریتم طبقه بندی (Classification) است. در ادامه به تابع KNN که در کتابخانه class قرار دارد اشاره خواهیم کرد. توجه داشته باشید، کدهایی نوشته شده در ادامه متن با در نظر گرفتن دریافت کتابخانه class قابل اجرا بوده و نتیجه مناسب را نشان می‌دهند. شکل دستوری به زبان R مانند فرمان زیر نوشته می‌شود.

knn(train, test, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE)

تابع knn دارای سه پارامتر اجباری است که سه پارامتر اول یعنی train, test, cl اجباری بوده و البته مقدار k (که تعداد طبقه‌ها را مشخص می‌کند) نیز به طور پیش فرض یک است. سه پارامتر آخر نیز اختیاری است.

  • train: مجموعه داده آموزشی که شامل مثال‌های از مشاهدات است که طبقه بندی شده و دارای برچسب هستند.
  • test: مجموعه داده آزمایشی که شامل مثال‌های از مشاهدات است که طبقه بندی نشده و دارای برچسب نیستند. هدف از اجرای الگوریتم KNN، برچسب گذاری این مشاهدات است.
  • cl: برچسب‌های مجموعه داده آموزشی که همان شماره طبقه را مشخص می‌کند.
  • l: نشانگر تعداد رای برای پیوستن یک مشاهده به هر طبقه است. پیش فرض مقدار صفر است.
  • prob: درصد تعداد مشاهدات مشابه در مثال را در خروجی نمایش می‌دهد.
  • use.all: نحوه برخورد با گره‌ها (مقادیر با فاصله‌های مشابه)

پارامتر train مخصوص مجموعه داده‌ای است که برای مشخص کردن مثال‌هایی از طبقه‌بندی مناسب است. باید توجه داشت که ابعاد (تعداد ستون‌های) train و test یاید یکسان باشد. برای test مقدار cl مشخص نیست. منظور از cl برچسب مشاهدات در مجموعه آموزشی (train) است.

یک مثال از رده بندی در R با الگوریتم KNN

به قطعه کد زیر توجه کنید. مشخص است که ابتدا یک سری مشاهدات با پنج گروه تولید شده‌اند که هر گروه از توزیع نرمال آمده‌اند. گروه اول میانگینی برابر با صفر و گروه دوم میانگین پنج و همینطور مقدار میانگین ۵ واحد اضافه شده تا آخرین طبقه مقادیری با میانگین ۲۰ باشند.

این مجموعه داده به همراه برچسب‌های از ۱ تا ۵، چارچوب داده df را تولید کرده‌اند. البته مشخص است که تعداد طبقه‌ها نیز k=5 تعریف شده است. در بخش دوم الگوریتم KKN به کار رفته است. براساس مجموعه trainset که یک نمونه ۴۵ تایی از مشاهدات است، الگوریتم به کار رفته و برای مجموعه testset برچسب طبقه‌ها تولید شده است.

نتیجه اجرای برنامه بالا به صورت زیر خواهد بود.

مشخص است که برچسب مشاهدات برای مجموعه testset ظاهر شده است. به این ترتیب با توچه به دستور زیر مشخص است که مقدار برچسب‌های ساخته شده با طبقه‌های واقعی مطابقت دارد. زیرا نتیجه همه مقایسه‌ها مقدار TRUE خواهد بود.

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

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