Amaliy matematika va intellektual texnologiyalar fakulteti algoritmlar va dasturlash texnologiyalari kafedrasi


Download 117.58 Kb.
Sana23.04.2023
Hajmi117.58 Kb.
#1385567
Bog'liq
Alisher Shaxobiddinov


O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA MAXSUS TA’LIM VAZIRLIGI
MIRZO ULUG’BEK NOMIDAGI O’ZBEKISTON MILLIY UNIVERSITETI


AMALIY MATEMATIKA VA INTELLEKTUAL TEXNOLOGIYALAR FAKULTETI
ALGORITMLAR VA DASTURLASH TEXNOLOGIYALARI KAFEDRASI
KECHKI TA’LIM
AXBOROT TIZIMLARI VA TEXNOLOGIYALARI YO’NALISH
SUN’IY INTELLEKT VA NEYRONTO’RLI TEXNOLOGIYALAR FANIDAN

2-AMALIY ISH

Bajardi: Alisher Shaxobiddinov

Qabul qildi: Bahriddin Akbarov


Toshkent-2022
Mashinali o'rganish uchun K-Eng yaqin qo'shni (KNN) algoritmi
KNN yoki k-NN deb ham ataladigan k-eng yaqin qo'shnilar algoritmi parametrik bo'lmagan, nazorat qilinadigan o'rganish tasniflagichi bo'lib, u alohida ma'lumotlar nuqtasini guruhlash bo'yicha tasniflash yoki bashorat qilish uchun yaqinlikdan foydalanadi

  • K-Yaqin qo'shni nazorat ostida o'rganish texnikasiga asoslangan eng oddiy Mashina o'rganish algoritmlaridan biridir.

  • K-NN algoritmi yangi holatlar/ma'lumotlar va mavjud holatlar o'rtasidagi o'xshashlikni qabul qiladi va yangi ishni mavjud toifalarga eng o'xshash toifaga qo'yadi.

  • K-NN algoritmi barcha mavjud ma'lumotlarni saqlaydi va o'xshashlik asosida yangi ma'lumotlar nuqtasini tasniflaydi. Bu shuni anglatadiki, yangi ma'lumotlar paydo bo'lganda, uni K-NN algoritmidan foydalangan holda osongina quduqlar to'plami toifasiga ajratish mumkin.

  • K-NN algoritmi regressiya uchun ham, tasniflash uchun ham ishlatilishi mumkin, lekin u asosan tasniflash muammolari uchun ishlatiladi.

  • K-NN parametrik bo'lmagan algoritmdir , ya'ni u asosiy ma'lumotlarga hech qanday taxmin qilmaydi.

  • U dangasa o'rganuvchi algoritmi deb ham ataladi, chunki u o'quv to'plamidan darhol o'rganmaydi, aksincha u ma'lumotlar to'plamini saqlaydi va tasniflash vaqtida ma'lumotlar to'plamida amal qiladi.

  • O'quv bosqichida KNN algoritmi faqat ma'lumotlar to'plamini saqlaydi va u yangi ma'lumotlarni olganida, u ma'lumotlarni yangi ma'lumotlarga juda o'xshash toifaga tasniflaydi.

Misol: Aytaylik, bizda mushuk va itga o'xshash jonzot tasviri bor, lekin biz bu mushuk yoki it ekanligini bilishni xohlaymiz. Shunday qilib, ushbu identifikatsiya qilish uchun biz KNN algoritmidan foydalanishimiz mumkin, chunki u o'xshashlik o'lchovida ishlaydi. Bizning KNN modelimiz mushuklar va itlar tasvirlarida yangi ma'lumotlar to'plamining o'xshash xususiyatlarini topadi va eng o'xshash xususiyatlarga asoslanib, uni mushuk yoki it toifasiga kiritadi.

Nima uchun bizga K-NN algoritmi kerak?


Aytaylik, ikkita toifa, ya'ni, A va B toifalari mavjud va bizda yangi ma'lumotlar nuqtasi x1 bor, shuning uchun bu ma'lumotlar nuqtasi ushbu toifalarning qaysi birida joylashgan bo'ladi. Ushbu turdagi muammolarni hal qilish uchun bizga K-NN algoritmi kerak. K-NN yordamida biz ma'lum bir ma'lumotlar to'plamining toifasi yoki sinfini osongina aniqlashimiz mumkin. Quyidagi diagrammani ko'rib chiqing:
K-NN qanday ishlaydi?
K-NN ning ishlashini quyidagi algoritm asosida tushuntirish mumkin:

  • 1-qadam: Qo'shnilarning K raqamini tanlang

  • 2-bosqich: K qo'shnilarning Evklid masofasini hisoblang

  • 3-qadam: Hisoblangan Evklid masofasiga ko'ra K eng yaqin qo'shnilarni oling.

  • 4-qadam: Ushbu k qo'shnilar orasida har bir toifadagi ma'lumotlar nuqtalarining sonini hisoblang.

  • 5-qadam: Yangi ma'lumotlar nuqtalarini qo'shni soni maksimal bo'lgan toifaga belgilang.

  • 6-qadam: Bizning modelimiz tayyor.

  • KNN algoritmining afzalliklari:

  • Amalga oshirish oson.

  • Bu tartibsiz ma'lumotlariga chidamli

  • Treyning ma'lumotlari katta bo'lsa, samaraliroq bo'lishi mumkin.

  • KNN algoritmining kamchiliklari:

  • Har doim bir muncha vaqt murakkab bo'lishi mumkin bo'lgan K qiymatini aniqlash kerak.

  • Barcha o'quv namunalari uchun ma'lumotlar nuqtalari orasidagi masofani hisoblash tufayli hisoblash narxi yuqori

  • KNN algoritmiga amaliy ish

import matplotlib
matplotlib.use('TkAgg')
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report
from matplotlib import pyplot as plt
data = pd.read_csv('data.csv')
df = pd.DataFrame(data)
df['Insulin'] = data.SkinThickness
df0 = df[:27]
df1 = df[28:50]
df2 = df[100:150]
plt.xlabel('Age')
plt.ylabel('Blood Pressure')
plt.scatter(df0['Age'], df0['BloodPressure'], color = 'pink', marker = 'D')
plt.scatter(df1['Age'], df1['BloodPressure'], color = 'green', marker = '*')
plt.scatter(df2['Age'], df2['BloodPressure'], color = 'red', marker = '^')
plt.show()
x = df.drop(['Insulin'], axis = 'columns')
y = df.Insulin
x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.2, random_state=1)
knn = KNeighborsClassifier(n_neighbors=7)
knn.fit(x_train, y_train)
baxo = knn.score(x_test,y_test)
print(baxo)
y_pred = knn.predict(x_test)
print(classification_report(y_test,y_pred))

Download 117.58 Kb.

Do'stlaringiz bilan baham:




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