K-yaqin qo'shnilar qanday ishlaydi?


Download 234.63 Kb.
Sana28.12.2022
Hajmi234.63 Kb.
#1018502
Bog'liq
knn uz uz


K-Yaqin qo'shnilar qanday ishlaydi?

Muxtasar qilib aytganda, K-Nearest Neighbors ma'lumotlarning eng yaqin nuqtalariga (biz tasniflamoqchi bo'lgan) qarab va bashorat qilingan qiymat uchun eng ko'p uchraydigan sinfni tanlash orqali ishlaydi. Shuning uchun, agar biz ma'lumotlar to'plamimizdagi nuqta klasterlarini aniqlay olsak, bu algoritm odatda eng yaxshi ishlaydi (pastga qarang).


Biz aniq ko'rishimiz mumkinki, bir xil sinf nuqtalari guruhlari birlashtirilgan. Bu korrelyatsiya tufayli biz aniq tasniflash uchun K-Nearest Neighbors algoritmidan foydalanishimiz mumkin.
Misol
Keling, quyidagi misolni ko'rib chiqaylik.
Biz qora nuqtani qizil, ko'k yoki yashil deb tasniflamoqchimiz. Ma'lumotlarga nazar tashlasak, u qizil sinfga tegishli ekanligini aniq ko'rishimiz mumkin, lekin buning uchun qanday algoritm tuzamiz?

Birinchidan, biz K qiymatini aniqlashimiz kerak. Bu qaror qabul qilish uchun biz qancha ball sarflashimiz kerak. Eng yaqin K qora nuqtaga ishora qiladi.


Keyinchalik, biz ushbu K nuqtalari sinfini aniqlashimiz kerak.


Nihoyat, biz K nuqtalarimizdan qaysi sinf ko'proq ko'rinishini aniqlaymiz va bu bizning bashoratimiz.


Bu misolda K qiymatimiz 3 ga teng.


Qora nuqtamizga eng yaqin 3 nuqta - bu kichik qora nuqta.


Bu uch nuqtaning hammasi qizil, shuning uchun qizil rang eng ko'p uchraydi. Shunday qilib, biz qora nuqtani qizil guruhdan ajratamiz.


Agar siz K> 3 va undan murakkab holatlar bilan bog'liq boshqa misollarni ko'rishni istasangiz, videoni tomosha qiling.
Cheklovlar va kamchiliklar

KNN algoritmi oddiy tasniflash vazifalarini bajarishda juda yaxshi bo'lsa -da, uning ko'p cheklovlari bor. Ulardan biri - mashg'ulot/bashorat qilish vaqti. Algoritm ma'lumotlar punkti va o'quv majmuasidagi har bir nuqta orasidagi masofani topgani uchun, hisoblash juda og'ir. Chiziqli regressiya kabi algoritmlardan farqli o'laroq, ma'lum bir ma'lumot nuqtasida funktsiyani qo'llaydigan KNN algoritmi bashorat qilish uchun barcha ma'lumotlar to'plamini talab qiladi. Bu shuni anglatadiki, biz har safar bashorat qilsak, har bir nuqta uchun berilgan ma'lumotlarni solishtirish algoritmini kutishimiz kerak. Millionlab elementlarni o'z ichiga olgan ma'lumotlar to'plamida bu juda katta kamchilik.


Algoritmning yana bir kamchiligi - bu xotiradan foydalanish. Ish uslubi (yuqorida ko'rsatilgan) tufayli, bashorat qilish uchun barcha ma'lumotlar to'plami xotiraga yuklanishi kerak. Ma'lumotlarni xotiraga to'plab yuklash mumkin, lekin bu juda ko'p vaqtni oladi.
Xulosa

K-Nearest Neighbor algoritmi kichik o'lchamli (xususiyatli) kichik ma'lumotlar to'plamida tasniflashda juda yaxshi. Amalga oshirish juda oddiy va kichik ma'lumotlarga tezkor tasniflash uchun yaxshi tanlovdir. Biroq, juda katta ma'lumotlar to'plamiga o'tishda va katta miqdordagi bashorat qilishda bu juda cheklangan.


Keyingi darsda biz ushbu algoritmni bajaramiz


Parametrlar:

n_neighborsint, standart = 5


Kneighbors so'rovlari uchun sukut bo'yicha foydalaniladigan qo'shnilar soni.


og'irliklar {"bir xil", "masofa"} yoki chaqiriladigan, standart = "bir xil"

Bashorat qilishda ishlatiladigan vazn funktsiyasi. Mumkin bo'lgan qiymatlar:


"bir xil": bir xil og'irliklar. Har bir mahalladagi barcha nuqtalar teng tortiladi.


"Masofa": ularning masofasiga teskari vazn nuqtalari. bu holda, so'rov nuqtasining yaqin qo'shnilari uzoqdagi qo'shnilarga qaraganda ko'proq ta'sir ko'rsatadi.


[chaqiriladigan]: masofalar massivini qabul qiladigan va og'irliklarni o'z ichiga olgan bir xil shakldagi massivni qaytaradigan foydalanuvchi tomonidan belgilangan funksiya.


Algoritm: {"auto", "ball_tree", "kd_tree", "brute"}, default = 'auto'

Algoritm eng yaqin qo'shnilarni hisoblash uchun ishlatilgan:


"Ball_tree" BallTree -dan foydalanadi


"Kd_tree" KDTree -dan foydalanadi


"qo'pol" qo'pol qidiruvdan foydalanadi.


"Auto" usuli mos keladigan qiymatlarga asoslanib, eng to'g'ri algoritmni tanlashga harakat qiladi.


Eslatma: siyrak kiritishda o'rnatish qo'pol kuch ishlatib, ushbu parametr sozlamalarini bekor qiladi.
barg_sizeint, standart = 30

Barg hajmi BallTree yoki KDTree-ga o'tkazildi. Bu qurilish va so'rovlarning tezligiga, shuningdek, daraxtni saqlash uchun zarur bo'lgan xotiraga ta'sir qilishi mumkin. Optimal qiymat muammoning tabiatiga bog'liq.


pint, standart = 2

Minkovskiy metrikasi uchun quvvat parametri. P = 1 bo'lsa, bu manhattan_distance (l1) va p = 2 uchun euclidean_distance (l2) dan foydalanishga tengdir. Ixtiyoriy p uchun minkowski_distance (l_p) ishlatiladi.


metricstr yoki chaqiriladigan, default='minkowski'

Daraxt uchun foydalaniladigan masofa ko'rsatkichi. Standart ko'rsatkich minkowski va p = 2 standart evklid metrikasiga teng. Mavjud ko'rsatkichlar ro'yxati uchun DistanceMetric hujjatlariga qarang. Agar metrik "oldindan hisoblangan" bo'lsa, X masofa matritsasi deb qabul qilinadi va o'rnatish vaqtida kvadrat bo'lishi kerak. X siyrak grafik bo'lishi mumkin, bu holda faqat "nolga teng bo'lmagan" elementlarni qo'shnilar deb hisoblash mumkin.


metric_paramsdict, default = Yo'q

Metrik funktsiya uchun qo'shimcha kalit so'z argumentlari.


n_jobsint, default=Yo'q

Qo'shnilar qidirish uchun parallel ishlarning soni. Joblib.parallel_backend kontekstida hech kim 1 degani emas. -1 barcha protsessorlardan foydalanishni anglatadi. Batafsil ma'lumot uchun Lug'atga qarang. Moslash uslubiga ta'sir qilmaydi.


Atributlar:

class_array shakli (n_klasslar,)


Klassifikatorga ma'lum sinf belgilari


samarali_metrik_str yoki qo'ng'iroq

Qo'llaniladigan masofa o'lchovi. Bu metrik parametr yoki uning sinonimi bilan bir xil bo'ladi, masalan. "Evklid", agar metrik parametr "minkovskiy" ga va p parametr 2 ga o'rnatilgan bo'lsa.


samarali_metrik_params_dict

Metrik funktsiya uchun qo'shimcha kalit so'z argumentlari. Ko'pgina o'lchovlar metric_params parametri bilan bir xil bo'ladi, lekin eff_metric_ atributi "minkowski" ga o'rnatilgan bo'lsa, p parametr qiymatini ham o'z ichiga olishi mumkin.


n_features_in_int

Fit davomida ko'rilgan xususiyatlar soni.


0.24 versiyasida yangi.


Shakllar qatoridagi xususiyat_nomlari (n_fiyatlari_,)

Moslashganda ko'riladigan xususiyatlar nomlari. Faqat X barcha satrlardan iborat xususiyat nomlariga ega bo'lganda aniqlanadi.


1.0 versiyasida yangi.


n_samples_fit_int

O'rnatilgan ma'lumotlarning namunalari soni.


chiqishlar_2d_bool

Y ning shakli (n_samples,) yoki (n_samples, 1) bo'lsa, noto'g'ri, aks holda True.


Usullari

mos (X, y)
O'quv ma'lumotlar to'plamidan eng yaqin qo'shnilar tasniflagichini joylashtiring.

get_params ([chuqur])


Ushbu hisoblagich uchun parametrlarni oling.

kneighbors([X, n_neighbors, qaytish_masofasi])


Nuqtaning K-qo'shnilarini toping.

kneighbors_graph ([X, n_nighbors, mode])


X dagi nuqtalar uchun k-Qoʻshnilarning (vaznli) grafigini hisoblang.

bashorat qilish (X)


Taqdim etilgan ma'lumotlar uchun sinf belgilarini taxmin qiling.

prognoz_proba (X)


Sinov ma'lumotlari X uchun qaytish ehtimoli taxminlari.

ball (X, y [, namuna_ vazn])


Berilgan test ma'lumotlari va teglar bo'yicha o'rtacha aniqlikni qaytaring.

set_params(**params)


Bu taxminchining parametrlarini o'rnating.
Download 234.63 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling