{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Topshiriqlar 3\n", "\n", "Quyidagi topshiriqlar `bayes_methods.ipynb` dagi COVID-19 misoli va diabet to‘plami misoli asosida tuzilgan.\n", "\n", "## A. Bayes teoremasi (bitta alomat)\n", "\n", "1. Shartli ehtimollik ta’rifidan foydalanib Bayes teoremasini keltirib chiqaring:\n", " $Pr(A\\mid B)=\\frac{Pr(B\\mid A)Pr(A)}{Pr(B)}$.\n", "2. Quyidagi jadval (COVID testi va isitma) berilgan:\n", "\n", " | |Ijobiy|Salbiy|Jami|\n", " |---|---:|---:|---:|\n", " | Isitmasi bor | 30 | 5 | 35 |\n", " | Isitmasi yo‘q | 10 | 55 | 65 |\n", " | Jami | 40 | 60 | 100 |\n", "\n", " a) Prior ehtimolliklarni toping: $Pr(Ijobiy)$, $Pr(Salbiy)$, $Pr(Isitma\\,bor)$, $Pr(Isitma\\,yo‘q)$.\n", " b) Likelihood(lar)ni toping: $Pr(Isitma\\,bor\\mid Ijobiy)$, $Pr(Isitma\\,bor\\mid Salbiy)$.\n", " c) Bayes orqali $Pr(Ijobiy\\mid Isitma\\,bor)$ ni hisoblang va jadvaldan bevosita $30/35$ bilan solishtiring.\n", "3. (Tibbiy talqin) Jadvaldan quyidagilarni toping va izohlang:\n", " a) Sezgirlik (sensitivity): $Pr(Isitma\\,bor\\mid Ijobiy)$\n", " b) Xoslik (specificity): $Pr(Isitma\\,yo‘q\\mid Salbiy)$\n", " c) Musbat bashorat qiymati (PPV): $Pr(Ijobiy\\mid Isitma\\,bor)$\n", " d) Manfiy bashorat qiymati (NPV): $Pr(Salbiy\\mid Isitma\\,yo‘q)$\n", "\n", "## B. Ko‘p alomat (Naive Bayes g‘oyasi)\n", "\n", "4. Quyidagi jadval (COVID testi va bosh og‘rig‘i) berilgan:\n", "\n", " | |Ijobiy|Salbiy|Jami|\n", " |---|---:|---:|---:|\n", " | Bosh og‘rig‘i bor | 35 | 15 | 50 |\n", " | Bosh og‘rig‘i yo‘q | 5 | 45 | 50 |\n", " | Jami | 40 | 60 | 100 |\n", "\n", " a) $Pr(Ijobiy\\mid Bosh\\,og‘rig‘i\\,bor)$ ni Bayes orqali hisoblang.\n", " b) $Pr(Salbiy\\mid Bosh\\,og‘rig‘i\\,bor)$ ni ham toping va yig‘indisi 1 ga tengligini tekshiring.\n", "5. (Naive Bayes taxmini) Isitma va bosh og‘rig‘i *sinf berilganda mustaqil* deb faraz qiling.\n", " a) Un-normalized (normallashmagan) qiymatlarni hisoblang:\n", " $score_{+}=Pr(Ijobiy)\\,Pr(Isitma\\,bor\\mid Ijobiy)\\,Pr(Bosh\\,og‘rig‘i\\,bor\\mid Ijobiy)$\n", " va\n", " $score_{-}=Pr(Salbiy)\\,Pr(Isitma\\,bor\\mid Salbiy)\\,Pr(Bosh\\,og‘rig‘i\\,bor\\mid Salbiy)$.\n", " b) Normallash (posterior) qiling: $Pr(Ijobiy\\mid Isitma\\,bor, Bosh\\,og‘rig‘i\\,bor)=\\frac{score_{+}}{score_{+}+score_{-}}$.\n", " c) Natijani oddiy tilda talqin qiling: ikkala alomat birga bo‘lsa, \"ijobiy\" ehtimoli qanday o‘zgaradi?\n", "6. (Model tanqidi) Naive Bayes taxmini qachon buzilishi mumkin? Isitma va bosh og‘rig‘i misolida 2 ta sabab yozing.\n", "\n", "## C. Amaliy Naive Bayes: diabet misoli\n", "\n", "7. `datasets.py` dagi `diabet_train()` va `diabet_test()` funksiyalaridan foydalanib o‘rgatuvchi va test to‘plamlarni oling.\n", " a) O‘rgatuvchi to‘plamda sinflar ulushini (prior) toping: $Pr(y=1)$ va $Pr(y=0)$.\n", " b) Nega priorlar muhim? 2–3 gap bilan izohlang.\n", "8. `utils.py` dagi `bayes_compute_parameters(x, y, col)` funksiyasini o‘qing.\n", " a) Funksiya qaytarayotgan `probs1` va `probs2` aslida qaysi ehtimolliklarga mos kelishi kerak? (Aniq yozing: $Pr(X_j=v\\mid y=1)$ kabi.)\n", " b) Hisoblashdagi asosiy muammo nimada? (Ishora: maxrajda nima turishi kerak?)\n", " c) Funksiyani shunday tuzatingki, u haqiqiy shartli ehtimolliklarni qaytarsin (sinflar bo‘yicha alohida normallash).\n", "9. Bir dona alomat uchun jadval tuzing:\n", " a) Ixtiyoriy bitta alomat indeksini tanlang (masalan, `col=12` kabi).\n", " b) Har bir toifa qiymati uchun $y=1$ va $y=0$ da necha marta uchraganini sanang.\n", " c) Natijani markdown jadval ko‘rinishida chiqaring.\n", "10. (Nol ehtimollik muammosi) Agar test obyektida uchragan biror qiymat o‘rgatuvchi sinflardan birida umuman uchramagan bo‘lsa, Naive Bayesda nima sodir bo‘ladi?\n", " a) Bu muammoni Laplace smoothing bilan qanday hal qilsa bo‘ladi? Formulani yozing.\n", " b) Smoothing yoqilgan va o‘chirilgan holatni bitta alomatda taqqoslang.\n", "11. (Underflow) 20 ta alomatning ehtimolliklarini ko‘paytirganda son juda kichik bo‘lib ketishi mumkin.\n", " a) Nega bu muammo paydo bo‘ladi?\n", " b) Log-ehtimolliklar yordamida qaror qabul qilishni yozing ($\\log$ yig‘indiga aylanadi).\n", "12. Naive Bayes klassifikatori yozing:\n", " a) Har bir sinf uchun $\\log Pr(y) + \\sum_j \\log Pr(X_j=v_j\\mid y)$ ballni hisoblang.\n", " b) Eng katta ballga ega sinfni bashorat qiling.\n", "13. Test to‘plamda baholang:\n", " a) Aniqlik (accuracy) ni hisoblang.\n", " b) Confusion matrix (TP, FP, TN, FN) ni hisoblang.\n", " c) Precision, recall, F1 ni toping.\n", "14. (Tahlil) Sizning modelingiz qaysi turdagi xatoni ko‘proq qiladi: diabet borlarni o‘tkazib yuborishmi (FN) yoki yo‘q bo‘lsa ham diabet deyishmi (FP)? Nega bu tibbiyotda muhim?\n", "15. (Kichik tajriba) Alomatlar sonini kamaytirib ko‘ring:\n", " a) Faqat 1–2 ta alomat bilan model qurib ko‘ring.\n", " b) 5 ta alomat bilan.\n", " c) 20 ta alomat bilan.\n", " d) Natijalarni taqqoslab, Naive Bayesda ko‘p alomat qo‘shish har doim foydalimi-yo‘qmi xulosa qiling.\n" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }