Knn k eng yaqin qo'shni yoki k eng yaqin qo'shni degan ma'noni anglatadi va eng oddiy tasniflash algoritmlaridan biri bo'lib, ba'zida regressiya muammolarida ham qo'llaniladi
Download 1.88 Mb.
|
MUSTAQIL ISH TIMSOLLARNI TANIB OLISH
Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti Fan: TIMSOLLARNI TANIB OLISH MUSTAQIL ISH Guruh:314-19 Bajardi: JUMANOV OZODBEK MAVZU: KNN TANIB OLISH ALGORITMI kNN k eng yaqin qo'shni yoki k eng yaqin qo'shni degan ma'noni anglatadi va eng oddiy tasniflash algoritmlaridan biri bo'lib, ba'zida regressiya muammolarida ham qo'llaniladi. Oddiyligi tufayli bu Mashinani o'rganish sohasida boshlash uchun yaxshi namunadir. Ushbu maqolada python-da bunday tasniflagichning kodini yozish, shuningdek, natijalarni vizualizatsiya qilish misoli ko'rib chiqiladi. Mashinani o'rganishda tasniflash vazifasi - ob'ektni oldindan belgilangan sinflardan biriga uning rasmiylashtirilgan xususiyatlaridan kelib chiqib belgilash vazifasi. Ushbu masaladagi ob'ektlarning har biri N o'lchovli fazoda vektor sifatida tasvirlangan, har bir o'lchov ob'ekt xususiyatlaridan birining tavsifi hisoblanadi. Aytaylik, biz monitorlarni tasniflashimiz kerak: parametr bo'shlig'imizdagi o'lchamlar dyuymdagi diagonal o'lcham, tomonlar nisbati, maksimal ruxsat, HDMI interfeysining mavjudligi, narxi va boshqalar bo'ladi. Matnni tasniflash ishi biroz murakkabroq, ular odatda atama-hujjat matritsasidan foydalaning. Klassifikatorni o'rgatish uchun sinflar oldindan belgilangan ob'ektlar to'plamiga ega bo'lish kerak. Ushbu to'plam o'quv namunasi deb ataladi, uni belgilash qo'lda, o'rganilayotgan soha mutaxassislarini jalb qilgan holda amalga oshiriladi. Misol uchun, sharhlarning oldindan yig'ilgan testlari uchun "Ijtimoiy sharhda haqoratlarni aniqlash" topshirig'ida odam bu sharh muhokama ishtirokchilaridan biriga nisbatan haqoratmi yoki yo'qmi degan fikrni qo'yadi, topshiriqning o'zi ikkilik tasniflash misolidir. Tasniflash masalasida ikkitadan ortiq sinf (ko'p sinf) bo'lishi mumkin, ob'ektlarning har biri bir nechta sinfga tegishli bo'lishi mumkin (kesishuvchi). Algoritm
O'quv namunasidagi ob'ektlarning har biriga masofani hisoblang O'quv namunasining k ob'ektini tanlang, ularning masofasi minimaldir Tasniflanayotgan ob'ekt sinfi eng yaqin k qo'shnilar orasida eng ko'p uchraydigan sinfdir Quyidagi misollar pythonda amalga oshirilgan. Ularning to'g'ri bajarilishi uchun pythondan tashqari numpy, pylab va matplotlib o'rnatilgan bo'lishi kerak. Kutubxonani ishga tushirish kodi quyidagicha: Dastlabki ma'lumotlar Misol bo'yicha tasniflagichning ishini ko'rib chiqing. Birinchidan, biz qanday tajribalar o'tkazilishi haqida ma'lumot yaratishimiz kerak: Oddiylik uchun men ikki o'lchovli bo'shliqni tanladim, unda standart og'ish 0,5 bo'lgan ikki o'lchovli Gaussning kutilgan qiymatining joylashuvi har bir o'q bo'ylab 0 dan 5 gacha bo'lgan oraliqda tasodifiy tanlangan. 0,5 qiymati ob'ektlar etarlicha yaxshi ajratilishi uchun tanlanadi (uch sigma qoidasi). Olingan tanlovni ko'rish uchun siz quyidagi kodni bajarishingiz kerak: O'quv va sinov namunalarini olish Shunday qilib, bizda ob'ektlar to'plami mavjud bo'lib, ularning har biri o'z sinfiga ega. Endi biz ushbu to'plamni ikki qismga bo'lishimiz kerak: o'quv to'plami va test to'plami. Buning uchun quyidagi kod ishlatiladi: #N maʼlumotlar elementini ikki qismga ajratiLDI: Endi, o'quv namunasiga ega bo'lgan holda, biz tasniflash algoritmining o'zini amalga oshirishimiz mumkin: O'quv va sinov namunalarini olish Shunday qilib, bizda ob'ektlar to'plami mavjud bo'lib, ularning har biri o'z sinfiga ega. Endi biz ushbu to'plamni ikki qismga bo'lishimiz kerak: o'quv to'plami va test to'plami. Buning uchun quyidagi kod ishlatiladi: Klassifikatorni amalga oshirish Endi, o'quv namunasiga ega bo'lgan holda, biz tasniflash algoritmini o'zini amalga oshirishimiz mumkin: Ob'ektlar orasidagi masofani aniqlash uchun siz nafaqat Evklid masofasidan foydalanishingiz mumkin: Manxetten masofasi, kosinus o'lchovi, Pearson korrelyatsiya mezoni va boshqalar ham qo'llaniladi. Amalga oshirish misollari Endi biz tasniflagichimiz qanchalik yaxshi ishlashini baholashimiz mumkin. Buning uchun biz ma'lumotlarni hosil qilamiz, ularni o'quv va sinov namunalariga ajratamiz, sinov namunasi ob'ektlarini tasniflaymiz va sinfning haqiqiy qiymatini tasniflash natijasida olingan qiymat bilan taqqoslaymiz. Klassifikatorning sifatini baholash uchun turli xil algoritmlar va turli xil o'lchovlar qo'llaniladi, batafsil ma'lumotni bu erda topishingiz mumkin: Endi eng qiziqarli narsa qoladi: tasniflagichning ishini grafik tarzda ko'rsatish. Quyidagi rasmlarda men har birida 40 ta elementdan iborat 3 ta sinfdan foydalandim, algoritm uchun k qiymati uchtaga teng olindi. ushbu rasmlarning chiqishi quyidagi koddan foydalangan Xulosa
kNN eng oddiy tasniflash algoritmlaridan biridir, shuning uchun u ko'pincha haqiqiy muammolarda samarasiz bo'lib chiqadi. Tasniflash aniqligiga qo'shimcha ravishda, ushbu tasniflagichning muammosi tasniflash tezligidir: agar o'quv namunasida N ob'ekt, sinov namunasida M ob'ekt va bo'shliq o'lchami K bo'lsa, u holda sinov namunasini tasniflash bo'yicha operatsiyalar soni. O(K*M*N) sifatida baholanishi mumkin. Shunga qaramay, kNN algoritmi Machine Learning bilan boshlash uchun yaxshi namunadir. Download 1.88 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling