n_neighbours: Algoritmning kerakli qo'shnilarini aniqlash uchun. Odatda, bu 5 qiymatini oladi.
metric='minkowski': Bu standart parametr bo'lib, nuqtalar orasidagi masofani belgilaydi(quyida bu parametrdan foydalanilmgan).
Klassifikatorni o'quv ma'lumotlariga moslashtiramiz. Quyida uning kodi:
Sinov natijasini bashorat qilish: Test to‘plami natijasini bashorat qilish uchun y_predict vektorini yaratamiz. Quyida uning kodi:
Confusion matritsasini yaratish:
Endi biz K-NN modelimiz uchun klassifikatorning aniqligini ko'rish uchun confusion matritsasini yaratamiz. Quyida uning kodi:
Bashorat natijasi olingandan so’ng, uni Accuracy, Precision Recall, F-1 Score yordamida baholaymiz.
Yuqoridagi kodda accuracy bergan natijadan ko’rinib K-NN algoritmini asosida yaratilgan dasturimiz 75% aniqlikda ishlamoqda.
Bu modelni ishlab chiqishda K-NN algoritmini uchun K ni qiymatini 5 ga teng deb oldik, lekin biz K ni eng yaxshi qiymatini aniqlash uchun quyidagi usullarni taqdim etamiz:
For operatori yordamida: for operatori yordamida K ni qiymatlarini 1 dan 25 gacha oraliqda natijasini solishtirb chiqamiz
Yuqoridagi kod ishlagandan so’ng biz K ning eng yaxshi qiymatini quyidagi jadval orqali topishimiz mumkin.
Bu yerda baholash F-1 Score orqali aniqlanmoqda, ko’rinib turibdiki K=11 va 23 qiymatlarga teng bo’lganda aniqlik yuqori baholanmoqda.
K ning eng yaxshi qiymatini topish uchun sklearn kutubxonasi tarkibida tayyor GridSearchCV funksiyasi mavjud, quyida uning kodi:
Best_params_ funksiyasi orqali K ning eng yaxshi qiymatini aniqlaymiz.
Natijadan ko’rinib turibdiki funksiya K ning eng yaxshi qiymati 23 ekanligini ko’rsatmoqda.
Best_score_ funksiyasi orqali esa K ning eng yaxshi qiymatida aniqlikni aniqlaymiz.
Natijadan ko’rinib turibdiki funksiya K=23 bo’lganda aniqlik 77% ni tashkil etar ekan. Biz bu natijani xatolik grafigi orqali tasvirlab ham ko’rishimiz mumkin.
Yuqoridagi grafikda modelning xatolik darajasi ko’rsatib o’tilgan, K ning qiymati 23 ga teng bo’lganda eng kam xatolikga erishilmoqda.