O’zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnalogiyalari universiteti

O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNALOGIYALARI UNIVERSITETI
IML003 – guruh talabasi
Mamatmusayev Jaloliddinning Mashinali o’qitishga kirish fanidan tayyorlagan
5-amaliy ishi
Bajardi: J.Mamatmusayev
Tekshirdi: J. Nurmurodov
Toshkent 2024
5-Amaliy topshiriq.
Logistik regressiya tushunchasi. Xatolarni baholash. Klassifikatsiyani amalga oshirish.
Logistik regressiya, asosan, kategoriyalik ma'lumotlarni tahlil qilish va ikki yoki undan ortiq guruhlarga ajratish uchun ishlatiladigan statistik usuldir. Bu, odatda, ikkilik (binar) klassifikatsiya muammo yoki vazifalarida qo'llaniladi, masalan, elektron pochta xabarining spam yoki spam emasligini aniqlash yoki kreditorning qarz oluvchiga kredit berish bo'yicha qarorini oldindan aytish.
Logistik regressiya, berilgan kiritishlar (xususiyatlar) to'plami asosida ijobiy yoki salbiy sinfga tegishli ehtimoliy natijani bashorat qiladi. Bu "sigmoid funksiya" yoki "logit funksiya" deb ataluvchi maxsus funksiyadan foydalaniladi, bu esa natijalarni 0 va 1 orasidagi qiymatga aylantirish imkonini beradi, bu esa ehtimollikni ifodalaydi. Masalan, agar biz bir qator ma'lumotlarni kiritadigan bo'lsak, logistik regressiya ushbu ma'lumotlarni asos qilib, obyektning ma'lum bir sinfga tegishli ehtimolini beradi.
Logistik regressiya – bu binar klassifikatsiya muammolarini hal qilish uchun ishlatiladigan statistik usul. Ya'ni, ma'lum bir ob'yektning ikki toifadon biriga mansubligini aniqlaymiz: masalan, elektron pochtaning "spam" yoki "spam emas"ligi.
Logistik regressiya kiritilgan xususiyatlarni (features) oladi va sigmoid funksiya yordamida 0 va 1 oralig'ida qiymat chiqaradi. Bu qiymat ob'yektning ma'lum bir klasstag (masalan, "1") bo'lishi ehtimolini ifoda etadi. Agar qiymat belgilangan chegara (threshold, odatda 0.5)dan yuqori bo'lsa, ob'yekt "1" klasstag deb belgilanadi; aks holda, "0".
Xatolarni baholash: Klassifikatsiyada xatolarni baholash uchun quyidagi metrikalar ishlatiladi:
- Aniqlik (Accuracy): To'g'ri klassifikatsiya qilingan namunalar sonining umumiy namunalar soniga nisbati.
- Qayta kashf qilish darajasi (Recall): Pozitiv deb belgilangan namunalar ichida to'g'ri pozitiv deb aniqlanganlarning ulushi.
- Aniqlik (Precision): To'g'ri pozitiv deb aniqlangan namunalar sonining, umumiy pozitiv deb belgilangan namunalar soniga nisbati.
- F1 balli: Recall va Precision o'rtasida muvozanat tashkil etuvchi metrika.
Klassifikatsiyani amalga oshirish: Python tilida logistik regressiya modelini yaratish va o'qitish (train) uchun scikit-learn kutubxonasidan foydalanish mumkin.
Quyidagi Python dasturida logistik regressiya modeli yaratilgan, o'qitilgan va baholanadi. Shuningdek, modelning ish faoliyati grafik ko'rinishda tasvirlangan:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
# Sun'iy ma'lumotlar yaratamiz
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)
# Ma'lumotlarni o'quv va test to'plamlariga ajratamiz
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Logistik regressiya modelini yaratamiz va uni o'qitamiz
model = LogisticRegression()
model.fit(X_train, y_train)
# Test to'plami uchun bashoratlar
predictions = model.predict(X_test)
# Konfuzion matritsa orqali xatolar
cm = confusion_matrix(y_test, predictions)
print(cm)
# Klassifikatsiya hisoboti
cr = classification_report(y_test, predictions)
print(cr)
# Grafikni chiqaramiz
plt.scatter(X_test[:, 0], X_test[:, 1], c=predictions, marker='o', edgecolor='b', s=100, label='Test data')
plt.title('Logistic Regression Classification')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()
T
Bu kodda, sun'iy ma'lumotlar yaratilgan va ular o'qitish (training) va test to'plamlariga ajratilgan. Logistik regressiya modeli o'qitilgan va test to'plami uchun bashoratlar qilingan. Konfuzion matritsa va klassifikatsiya hisoboti xatolarni baholash uchun ishlatilgan. Nihoyat, ma'lumotlar va toifalar chegarasi grafik ko'rinishda tasvirlangan.
|