Sana: 2024-11-15
Guruh: IML001-2
Talaba: Jalolov Farhod
Tekshirdi: Quzibayev Xudayshukur
Variant: 8
2-AMALIY TOPSHIRIQNI BAJARISH BO’YICHA
KO’RSATMALAR
Mavzu: Mashinali o‘qitishda sinflashtirish algoritmlari va ularni dasturlash. Logistik
regressiya
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. Yaratilgan datasetni modelni o’qitish uchun 85 % va testlash uchun 15%
nisbatda bo’laklarga ajrating.
4. Sklearn kutubxonasidan foydalangan holda logistik_regressiya modelini
quring.
5. Model aniqligini hisoblang(o’rgatuvchi tanalama uchun).
6. Modelni test to’plam bilan testlang. Modelini test to’plamdagi aniqligini
hisoblang.
7. Test to’plam uchun tartibsizlik matritsasi (confusion_matrix) ni hisoblang
va tariflang.
8. 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.
Sana: 2024-11-15
Guruh: IML001-2
Talaba: Jalolov Farhod
Tekshirdi: Quzibayev Xudayshukur
Variant: 8
Dataset yaratish
Berilgan masala bo‘yicha 40 ta misol va 4 ta sinfga tegishli dataset yaratildi.
Xususiyatlar soni 4 ta bo‘lib, har biri 0-100 oralig‘ida tasodifiy sonlar bilan
to‘ldirildi. Variant: 8. Ushbu variantda 'Kompyuterlarni sinflashtirish'
muammosi ko‘rib chiqildi.
Ikkita xususiyatning grafik tasviri
Quyidagi grafikda Feature_1 va Feature_2 xususiyatlari sinflar bo‘yicha
rang bilan tasvirlangan. Har bir rang alohida sinfni ifodalaydi.
Sana: 2024-11-15
Guruh: IML001-2
Talaba: Jalolov Farhod
Tekshirdi: Quzibayev Xudayshukur
Variant: 8
Ma’lumotlarni bo‘lish
Dataset 85% o‘rgatuvchi va 15% testlash to‘plamlariga bo‘lindi. Bu holda
o‘rgatuvchi tanlamadagi ma’lumotlar modeli o‘rgatish uchun, test to‘plami
esa aniqlikni baholash uchun ishlatiladi.
Model qurilishi va aniqlik
Logistik regressiya modeli qurildi va o‘rgatuvchi tanlamada 61.76% aniqlik,
test tanlamada esa 16.67% aniqlik ko‘rsatdi. Test ma’lumotlaridagi past
aniqlik sinflarning bir-biriga o‘xshashligi yoki tanlama hajmining kichikligi
bilan bog‘liq bo‘lishi mumkin.
Tartibsizlik matritsasi
Test to‘plami uchun tartibsizlik matritsasi quyida keltirilgan. Diagonal
bo‘yicha to‘g‘ri tasniflangan sinflar ko‘rsatilgan, qolgan qiymatlar esa
noto‘g‘ri tasniflanganlarni bildiradi.
Sana: 2024-11-15
Guruh: IML001-2
Talaba: Jalolov Farhod
Tekshirdi: Quzibayev Xudayshukur
Variant: 8
Kodlar:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix,
ConfusionMatrixDisplay
np.random.seed(42) # Taqdirni belgilash (reproduktivlik uchun)
n_samples = 40 # Misollar soni
n_features = 4 # Xususiyatlar soni
n_classes = 4 # Sinflar soni
X = np.random.rand(n_samples, n_features) * 100 # 0-100 oralig‘ida xususiyatlar
y = np.random.randint(0, n_classes, n_samples) # Tasodifiy sinf belgilari
df = pd.DataFrame(X, columns=[f"Xususiyat_{i+1}" for i in range(n_features)])
df['Sinf'] = y
#2
plt.figure(figsize=(8, 6))
for sinf in range(n_classes):
plt.scatter(df[df['Sinf'] == sinf]['Xususiyat_1'],
df[df['Sinf'] == sinf]['Xususiyat_2'], label=f"Sinf {sinf}")
Sana: 2024-11-15
Guruh: IML001-2
Talaba: Jalolov Farhod
Tekshirdi: Quzibayev Xudayshukur
Variant: 8
plt.title("Xususiyat 1 va Xususiyat 2 o‘rtasidagi grafika")
plt.xlabel("Xususiyat 1")
plt.ylabel("Xususiyat 2")
plt.legend()
plt.grid()
plt.show()
#3
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.15, random_state=42)
#4
model = LogisticRegression(multi_class='ovr', max_iter=200)
model.fit(X_train, y_train)
#5
y_train_pred = model.predict(X_train)
train_accuracy = accuracy_score(y_train, y_train_pred)
print(f"O‘rgatish to‘plamdagi aniqlik: {train_accuracy:.2f}")
#6
y_test_pred = model.predict(X_test)
test_accuracy = accuracy_score(y_test, y_test_pred)
print(f"Test to‘plamdagi aniqlik: {test_accuracy:.2f}")
#7
cm = confusion_matrix(y_test, y_test_pred)
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=range(n_classes))
Sana: 2024-11-15
Guruh: IML001-2
Talaba: Jalolov Farhod
Tekshirdi: Quzibayev Xudayshukur
Variant: 8
disp.plot(cmap='viridis')
plt.title("Test to‘plam uchun tartibsizlik matritsasi")
plt.show()
Xulosa
Ushbu loyiha davomida 'Kompyuterlarni sinflashtirish' masalasi logistik
regressiya yordamida yechidim. Tuzilgan model kichik hajmdagi
ma’lumotlar bilan ishladi, shuning uchun aniqlik past bo‘lishi mumkin.