k نزدیکترین همسایه در پایتون (KNN in Python)

در این قسمت تیم کدگیت را با آموزش k نزدیکترین همسایه در پایتون (KNN) همراهی کنید. در ابتدای این جلسه الگوریتم KNN را توضیح و سپس به پیاده سازی آن در پایتون به کمک کتابخانه Sklearn می‌پردازیم. پیشنهاد می‌کنیم قبل از مطالعه این جلسه آموزش رگرسیون خطی در پایتون را مطالعه نمایید.

K نزدیکترین همسایه

طبقه‌بندی مبتنی بر k نزدیکترین همسایه‌ (knn) یکی از روش‌های طبقه‌بندی معروف غیرپارامتری هست و با یک رویکرد بسیار ساده و کارا از همسایه برای دسته بندی داده جدید استفاده می‌کنند. در این روش تنها داده‌ها را ذخیره کرده و از آنها برای دسته بندی همسایه ها استفاده می کنند. به خاطر پیاده‌سازی ساده و همچنین عملکرد بالای این الگوریتم در اکثر پروژه‌ها و مقالات استفاده می‌شود.

k نزدیکترین همسایه در پایتون

K نزدیکترین همسایه در پایتون

برای پیاده سازی الگوریتم knn ما از کتابخانه sklearn استفاده می‌کنیم. دیتایی که بر روی آن دسته‌بندی انجام خواهیم داد Iris dataset می‌باشد(دانلود دیتاست iris). تصویر زیر سطرها و ستون‌های این دیتاست را نشان می‌دهد.

k نزدیکترین همسایه در پایتون

پیش پردازش دیتا

قبل از پیاده سازی الگوریتم knn دیتای خود را بررسی می‌کنیم و در صورت نیاز تغییراتی را بر روی آن اعمال می‌کنیم.

در گام نخست دیتای خود را وارد برنامه می‌کنیم.

سپس به کمک توابع info و describe اطلاعات کلی راجع به دیتاست بدست می‌آوریم.

بیشتر بخوانید:  ساخت تصویر معکوس در پایتون (Mirror Image)

خروجی تابع Describe به صورت زیر می‌باشد:

k نزدیکترین همسایه در پایتون

خروجی تابع info به صورت زیر می‌باشد:

متغیر‌های x و y را تعیین می‌کنیم:

متغیر y از سه گروه [‘Iris-setosa’, ‘Iris-versicolor’, ‘Iris-virginica’] تشکیل شده است. برای سادگی اسامی این سه گروه را به اعداد 1 و 2 و 3 تقسیم می‌کنیم. کد این عملیات به صورت زیر می‌باشد:

پیاده سازی K نزدیکترین همسایه در پایتون

حال بعد از پردازش دیتا ما به پیاده سازی الگوریتم knn می‌پردازیم. برای این کار دیتا را به دو قسمت test و train تقسیم می‌کنیم.

بیشتر بخوانید:  مرتب سازی ادغامی در پایتون (Merge Sort)

الگوریتم knn را بر روی دیتاست اعمال می‌کنیم (دقت کنید k = 2 قرار دادیم):

نوبت به ارزیابی الگوریتم رسیده است. به کمک کتابخانه sklearn مدلسازی که انجام دادیم را ارزیابی می‌کنیم:

خروجی ارزیابی به صورت زیر است:

98 درصد صحیح (نتیجه خوبیه!). شما با تغییر k می‌توانید نتیجه الگوریتم رو تغییر بدید.

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

    پسورد فایل: www.codegate.ir