O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“Timsollarni tanib olish”
Fanidan
3-topshiriq
Bajardi: Berdiev Maruf
Tekshirdi: Atoyev Suhrob
Keling, ma'lumotlar jadvalini quyidagicha tasavvur qilaylik:
O‘quv Ma'lumotlar (Misol)
Sinfini Aniqlash Kerak Bo‘lgan Yangi Ob'yekt
Yangi Ob'yekt: {1,0,0,0,0,1}
Python Dasturi
Quyidagi dastur yordamida yangi ob'yektning sinfini aniqlaymiz:
import numpy as np
# Ma'lumotlar jadvalini aniqlash
# Format: [Feature1, Feature2, Feature3, Feature4, Feature5, Feature6, Sinf]
dataset = np.array([
[1, 0, 0, 0, 0, 1, 'A'],
[0, 1, 0, 0, 0, 1, 'A'],
[1, 1, 0, 1, 0, 1, 'A'],
[1, 0, 1, 1, 0, 0, 'A'],
[0, 0, 1, 0, 1, 0, 'B'],
[0, 1, 1, 0, 1, 1, 'B'],
[1, 1, 1, 0, 0, 1, 'B'],
[1, 0, 0, 1, 1, 0, 'B']
])
# Yangi ob'yektni sinflash
new_object = np.array([1, 0, 0, 0, 0, 1])
# Hamming masofasini hisoblash
def hamming_distance(a, b):
return np.sum(a != b)
# Xususiyatlar va sinflarni ajratish
features = dataset[:, :-1].astype(int)
labels = dataset[:, -1]
# Yangi ob'yekt bilan masofalarni hisoblash
distances = np.array([hamming_distance(new_object, row) for row in features])
# Eng kichik masofaga ega sinfni topish
min_index = np.argmin(distances)
classified_label = labels[min_index]
print(f"Yangi ob'yekt {new_object} {classified_label} sinfiga mansub.")
Dastur Ishlash Printsipi:
Ma'lumotlar Jadvalini Aniqlash: Ma'lumotlarni NumPy massivida saqlaymiz. Har bir ob'yekt xususiyatlari va uning sinfi bilan birga saqlanadi.
Hamming Masofasini Hisoblash: Hamming masofasini hisoblash uchun hamming_distance funksiyasini yaratamiz. Bu funksiya ikkita binar vektor orasidagi farqni hisoblaydi.
Yangi Ob'yektni Sinflash: Yangi ob'yekt va ma'lumotlar jadvalidagi har bir ob'yekt orasidagi Hamming masofasini hisoblaymiz. Eng kichik masofaga ega bo‘lgan ob'yektning sinfi yangi ob'yektga tayinlanadi.
Ushbu dastur yangi ob'yektning sinfini aniqlaydi. Siz dasturda quyidagi natijani ko‘rasiz:
Yangi ob'yekt [1 0 0 0 0 1] A sinfiga mansub.
Bu yangi ob'yekt eng ko‘p o‘xshashlikka ega bo‘lgan ob'yektning sinfi bilan tasniflanadi.
|