Նայելով K-NN-ին իրական աշխարհի տեսանկյունից
Այս հոդվածը սկսելով Ջիմ Ռոնի այս հայտնի մեջբերումով: Ես ընտրեցի այս մեջբերումը, քանի որ կարծում եմ, որ դա պարզ միջոց է՝ բացատրելու k-NN-ը մեքենայական ուսուցման մասին քիչ կամ բացակայող գիտելիքներ ունեցող մարդկանց: k-ն կարող է նաև լինել 5 այս մեջբերումից, ավելի ուշ:
Երբ խոսքը վերաբերում է հարաբերություններին, մեզ վրա մեծ ազդեցություն են թողնում, ուզենք, թե չուզենք, մեզ ամենամոտ մարդիկ: Այն ազդում է մեր կայացրած որոշումների և մեր մտածելակերպի վրա: Իհարկե, յուրաքանչյուրն իր անձն է, բայց հետազոտությունները ցույց են տվել, որ մենք ավելի շատ ենք ազդում մեր միջավայրից, ավելի շատ, քան կարծում ենք:
Մեքենայի ուսուցման հեռանկար
Նայելով մեքենայական ուսուցման POV-ի այդ հայտնի մեջբերումին, մենք կարող ենք եզրակացնել, որ այն մարդիկ, ում մոտ (ամենամոտ) ենք կամ ամենաշատ ժամանակն են անցկացնում մեզ վրա: Մենք հակված ենք ներծծելու նրանց որոշ հատկանիշներ:
K-NN-ը նշանակում է K Nearest Neighbors: Սա պարզ մեքենայական ուսուցման ալգորիթմ է, որը հիմնված է Վերահսկվող ուսուցման տեխնիկայի վրա: Այն օգտագործում է հարևանությունը՝ ենթադրելու նոր տվյալների կետի և արդեն գոյություն ունեցող տվյալների կետերի նմանությունը: Այն հիմնականում օգտագործվում է Դասակարգման խնդիրներ լուծելու համար, քանի որ այն տվյալների կետերը բաժանում է դասերի կամ խմբերի:
Հեռավորությունը կարևոր գործոն է k-NN ալգորիթմն օգտագործելիս, հետևաբար, մենք պետք է հաշվարկենք որոշ մաթեմատիկական չափումներ: Այս մաթեմատիկական չափորոշիչներից մի քանիսը ներառում են, բայց չեն սահմանափակվում Էվկլիդեսյան հեռավորությունը, Մանհեթենի հեռավորությունը, Համինգի հեռավորությունը:
Էվկլիդեսյան հեռավորություն
Մաթեմատիկայի աշխարհում ցանկացած հարթության երկու կետերի միջև ամենակարճ հեռավորությունը կոչվում է Էվկլիդեսյան հեռավորություն: Այն երկու կետերի տարբերության քառակուսիների գումարի քառակուսի արմատն է:
Սա հեռավորության ամենատարածված միջոցն է: Այն օգնում է գտնել երկու իրական արժեք ունեցող տվյալների կետերի միջև հեռավորությունը (որոնք կարող են լինել ամբողջ թվերի կամ լողացողի տեսքով):
N.B: Նախքան Էվկլիդեսյան հեռավորությունը օգտագործելը, խորհուրդ է տրվում նորմալացնել կամ ստանդարտացնել տվյալները, մենք դա անում ենք այնպես, որ ավելի մեծ արժեքներով տվյալները չգերիշխեն արդյունքի վրա:
«d»-ը Էվկլիդեսյան հեռավորությունն է
«x» և «y» երկու կետերի կոորդինատներն են
Կոդի ներդրում
Կոդով Էվկլիդեսյան հեռավորությունն իրականացնելու տարբեր եղանակներ կան, եկեք տեսնենք մի քանիսը.
Քայլեր.
Տրվում է տվյալների նոր կետ;
1. Հաշվեք տվյալների այս նոր կետի հեռավորությունը տվյալների շտեմարանի բոլոր այլ տվյալների կետերից
2. Ստացեք ամենամոտը K միավոր
3. Ստացեք պիտակը ձայների մեծամասնությամբ
1. Կոդավորում KNN-ը զրոյից
Օգտագործելով numpy-ը՝ Էվկլիդեսյան հեռավորության չափիչը կիրառելու համար
def euclidean_distance(x1, x2): distance = np.sqrt(np.sum(x1-x2)**2) return distance
Հաշվելով ամենամոտ k
def _predict(self, x): # calc the distances distances = [euclidean_distance(x, x_train) for x_train in self.X_train] # get the closest k k_indices = np.argsort(distances)[:self.k] k_nearest_labels = [self.y_train[i] for i in k_indices] # majority vote most_common = Counter(k_nearest_labels).most_common() return most_common[0][0]
2. KNN-ի կոդավորում՝ օգտագործելով sklearn
# import libraries from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=5, metric="euclidean") knn.fit(X_train, y_train)
Ստուգեք կոդի ամբողջական ներդրումը ստորև բերված հղումով
KNN-ի ԿԻՐԱՌՈՒՄՆԵՐԸ ՄԵՔԵՆԱՅԻՆ ՈՒՍՈՒՑՈՒՄՈՒՄ
KNN-ը լայնորեն օգտագործվում է մեքենայական ուսուցման ծրագրերում: Օգտագործման ամենահայտնի դեպքերից մի քանիսը նշված են ստորև:
Առաջարկությունների շարժիչ
Առաջարկությունների շարժիչը տրամադրում է արտադրանքի առաջարկներ կամ ծառայություններ օգտվողին տվյալների հիման վրա: KNN-ն օգտագործվել է առաջարկությունների համակարգում՝ օգտատիրոջ տվյալների հիման վրա իրերը կամ ապրանքները նույնականացնելու համար: Այնուամենայնիվ, այն պիտանի չէ բարձր ծավալային տվյալների համար՝ հաշվի առնելով: Այնուամենայնիվ, դա հիանալի ընտրություն է բազային մոտեցման համար:
օրինակ՝ Գրքերի առաջարկությունների համակարգ
Նախշերի ճանաչում
KNN-ն օգտագործվում է տեքստի կամ պատկերների օրինաչափությունները բացահայտելու համար: Օրինակ, այն օգտագործվում է ձեռագիր թվանշանների ճանաչումը նույնականացնելու, վարկային քարտի օգտագործման և պատկերի ճանաչման օրինաչափությունները հայտնաբերելու համար:
Հայեցակարգի որոնում
Հայեցակարգի որոնումը ներառում է իմաստային առումով նմանատիպ փաստաթղթերի որոնում և նմանատիպ թեմաներ պարունակող փաստաթղթերի դասակարգում: Ժամանակակից աշխարհում տվյալները ստեղծվում են էքսպոնենցիալ, և դրանք ստեղծում են տոննա փաստաթղթեր: Այդ փաստաթղթերից յուրաքանչյուրը պարունակում է հիմնական հասկացություններ: Ենթադրենք, որ մենք օգտագործում ենք այս հիմնական հասկացությունները փաստաթղթերի հավաքածուից հանելու համար, և այդ փաստաթղթերը պարունակում են հսկայական քանակությամբ տվյալներ: Տվյալներից հիմնական հասկացությունները գտնելու համար մենք օգտագործում ենք KNN ալգորիթմը:
Տվյալների հաշվառումը բացակայում է
Տվյալների հավաքածուները հաճախ ունենում են բացակայող արժեքներ, ինչը խնդիր է ստեղծում մեքենայական ուսուցման մոդելների կամ վերլուծության համար: Մոդելավորում կամ վերլուծություն անելուց առաջ մենք պետք է փոխարինենք բաց թողնված արժեքները: KNN-ը արդյունավետ ալգորիթմ է՝ բացակայող արժեքները վերագրելու համար մի գործընթացում, որը կոչվում է «մոտակա հարեւանի իմպուտացիա»:
Բանկային գործ
KNN-ը լայնորեն կիրառվում է բանկային և ֆինանսական օգտագործման դեպքերում: Բանկային ոլորտում դա օգնում է կանխատեսել՝ հաճախորդին վարկ տալը ռիսկային է, թե անվտանգ։ Ֆինանսական ինստիտուտներում դա օգնում է կանխատեսել հաճախորդների վարկային վարկանիշը։
Հետևեք ինձ հետևյալ հասցեով՝
LinkedIn՝ Դևիս Օնյեոգուզորո
GitHub: davisonyeas
Կայք՝ http://davisonye.pythonanywhere.com/
Twitter՝ @davisonyeas