O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR
VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT
AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Kompyuter injiniringi fakulteti
Sun’iy intellekt kafedrasi
Mashinali o‘qitish fanidan
4-TOPSHIRIQ
Mavzu:
Mashinali o‘qitishda o‘qituvchisiz o‘qitish algoritmlarini o‘rganish va ularni
dasturlash
Bajardi
: 210-21 guruh talabasi
To’ymurodov Abror
Tekshirdi
: Xasanov U.K.
TOSHKENT – 2024
4 - topshiriq
1.
Berilgan variantdagi masala yuzasidan o’rgatuvchi tanlama(dataset)ni
shakllantiring.
2.
Yaratilgan dataset ning ixtiyoriy ikkita xususiyatini olgan holda matplotlib
kutubxonasidan foydalanib grafik tasvirlang.
3.
Sklearn kutubxonasidan foydalangan holda KMeans klasterlash modelini
quring(klasterlar sonini variantdan oling).
4.
Model tomonidan aniqlangan klaster markazlarini va ob’yektlarini grafik
tarvirlang.
5.
Modelini o’rgatuvchi to’plamdagi aniqligini hisoblang va tartibsizlik matritsasi
(confusion_matrix) ni quring. Klasterlash aniqligini baholang.
6.
Hisobotni word faylida shakllantiring. Yozilgan dastur kodlari, chizmalar,
tushirilgan oyna rasmlari wordda ilova qilinsin. Hisobotda ishlatilgan har bir rasmga,
chizmaga ta’rif bering. Sahifalarning yuqori kalontitulida sana, talaba guruh nomeri,
F.I.SH ni ko’rsating.
19
Olimlarni klasterini hosil qiling
40
4
4
4
1-
Rasm. Kodlar ko’rinishi
2-rasm . Kmeansni yaratish
3-rasm. Klasterlarni grafigini tasvirlash :
Kodda ozgina xatolik tufayli grafik hosil bo’lmadi
Dastur kodi :
import csv
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.metrics import confusion_matrix
# Datasetni o'qish
x1 = []
x2 = []
x3 = []
x4 = []
x5 = []
with open("./hayvonlar.csv") as file:
reader = csv.DictReader(file)
for row in reader:
if row["yirtqich"] != "yirtqich":
x1.append(row["yirqich"])
x2.append(row["classId"])
x3.append(float(row["umri(yil)"]))
x4.append(row["max_vazni(kg)"])
x5.append(float(row["tezligi(km/soat)"]))
# Grafik tasvirlash uchun ixtiyoriy ikkita xususiyatni tanlash
feature_index = 3 # Ixtiyoriy xususiyat indeksi, misol uchun x4
# Grafik tasvirlash
plt.scatter(x5[1:], x4[1:])
plt.xlabel("X5")
plt.ylabel("X4")
plt.title("X5 va X4 grafiki")
plt.show()
# Datasetni tashkil etish
dataset = np.array(list(zip(x5, x4)))
# KMeans klasterlash modelini yaratish
k = 3 # Klasterlar soni variantdan olinadi
kmeans = KMeans(n_clusters=k, random_state=42)
# Modelni o'rgatish
kmeans.fit(dataset)
# Klaster markazlarini olish
cluster_centers = kmeans.cluster_centers_
# Ob'yektlarni klasterlarga bog'lash
labels = kmeans.labels_
# Klasterlar uchun turli ranglarni belgilash
colors = ['red', 'green', 'blue', 'orange', 'purple', 'yellow']
# Klasterlarni grafikda tasvirlash
for i in range(k):
cluster_points = dataset[labels == i]
plt.scatter(cluster_points[:, 0], cluster_points[:, 1], label=f"Cluster {i+1}", c=colors[i
% len(colors)])
plt.scatter(cluster_centers[:, 0], cluster_centers[:, 1], c='red', marker='X', s=100,
label='Centroids')
plt.xlabel("X5")
plt.ylabel("X4")
plt.title("KMeans klasterlash")
plt.legend()
plt.show()
# Ma'lumotlar bazasidagi obyektlar soni
num_objects = len(dataset)
# Modelning o'rgatuvchi to'plamdagi aniqligi
train_accuracy = -kmeans.score(dataset)
# Tartibsizlik matritsasini hisoblash
cm = confusion_matrix(labels, kmeans.predict(dataset))
# Klasterlash aniqligini baholash
cluster_accuracy = np.mean(np.equal(labels, kmeans.predict(dataset)))
print("Ma'lumotlar bazasidagi obyektlar soni:", num_objects)
print("Modelning o'rgatuvchi to'plamdagi aniqligi:", train_accuracy)
print("Tartibsizlik matritsasi:\n", cm)
print("Klasterlash aniqligi:", cluster_accuracy)
|