{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayes usuli\n", "\n", "Ushbu metod ba'zida Bayes *teoremasi*, *qoidasi* yoki *qonuni* deb ham nomlanib, ma'lum bir hodisaning sodir bo'lish ehtimoligini topish uchun biz shartli ehtimolikdan foydalanib, ushbu qaralayotgan ehtimolikning boshqa biror bir hodisaga bog'liqligi haqidagi bilimga ega bo'lgan holda shu hodisaning ehtimoligini tasvirlash imkoni bo'ladi. Bu ta'rif, ancha murakkab bo'lib, uni quyidagi sodda ko'rinishdagi masalada o'rganib chiqib keyin umumiy teoramani yozish foydaliroq bo'ladi. \n", "\n", "Avvallo shartli ehtimolikning ushbu qoidaga aloqasini yaxshilab o'rganib olaylikda so'ng masalaga o'taylik. Odatda tibbiyotga oida masalalarni keltirish ko'pchilikka mos keladi, chunki o'quvchilarning deyarli hammasi hayotda tibbiyotga muhtoj bo'ladi. Masalan quyidagicha: \n", "\n", "* Bemorni yoki insoni COVID-19 virusiga tekshirishmiz zarur bo'lsa, u holda ushbu test ijobiy chiqsa, bu narsa shu test topshiruvchi insonda virus borligiga dalolat qiladi. Aks holda, ya'ni salbiy chiqsa, virus asorotlari shu insonda mavjud bo'lmaydi. Bilamizki, buni tekshirishning bir qancha usullari mavjud, jumladan PCR (polymerase chain reaction). Lekin biz bu masalani ishlash uchun bu testdan foydalanmaymiz, chunki ushbu test uchun ma'lum bir sharoitlarga ega laboratoriya kerak bo'ladi. Uning o'rniga biz insondagi ma'lum bir shamollash yoki gripp asoratlaridan foydalanamiz. Bu asoratlar quyidagilar: bemorning isitmasi, tomog' og'rig'i hamda bosh og'rig'i bor yoki yo'qligi. Endi biz quyidagi jadvalni qaraylik:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "||Ijobiy|Salbiy|Jami|\n", "|-------|------|-----|------|\n", "|Isitmasi borlar|30|5|35|\n", "|Isitmasi yo'qlar|10|55|65|\n", "|Jami|40|60|100|\n", "\n", "Biz bu jadvaldan quyidagi (shartli) ehtimoliklarni hisoblashimiz mumkin:\n", "\n", "1. \"Insonda virus bo'lishi\" $Pr(\"Ijobiy\")=\\frac{40}{100}=\\frac{2}{5}$;\n", "2. \"Insonda virus yo'qligi\" $Pr(\"Salbiy\")=\\frac{60}{100}=\\frac{3}{5}$;\n", "3. \"Insonda isitma bo'lishi\" $Pr(\"Isitma\\,bor\")=\\frac{35}{100}=\\frac{7}{20}$;\n", "4. \"Insonda isitma yo'qligi\" $Pr(\"Isitma\\,yo'q\")=\\frac{65}{100}=\\frac{13}{20}$;\n", "5. \"Visurga chalingan insonda isitma bo'lishligi\" $Pr(\"Isitma\\,bor\"|\"Ijobiy\")=\\frac{30}{40}=\\frac{3}{4}$, ya'ni isitmasi bor bemorlarning 30 tasi virusni yuqtirgan va qolgan virusni yuqtirgan 10 ta odamda esa isitma yo'q. Ushbu ikki hodisa bir-birga chambarchas bog'liq, ya'ni biz agar odam virus yuqtirgan bo'lsa, uning isitmasi bo'lish ehtimoligini topdik. Umumiy xulosa quyidagicha: \"virus yuqtirgan odamlarning 75 foizida isitma bor\";\n", "6. \"Isitmasi bor insonda virus bo'lishi\" $Pr(\"Ijobiy\"|\"Isitma\\,bor\")=\\frac{30}{35}=\\frac{6}{7}$. Bu shartli hodisa oldingi holning teskarisini ifodalaydi, ya'ni \"isitmasi bor inson\" haqida gap ketyabdi. Odatda bu ikki narsani ko'pchilik bir-biri bilan adashtirishadi. Bu yerda insonning isitmasi bor deb hisoblanadi, lekin oldingisida esa inson virus yuqturgan.;\n", "7. \"Virusga chalinmagan insonda isitma bo'lishligi\" $Pr(\"Isitma\\,bor\"|\"Salbiy\")=\\frac{5}{60}=\\frac{1}{12}$;\n", "8. \"Isitmasi bor insonda virus bo'lmasligi\" $Pr(\"Salbiy\"|\"Isitma\\,bor\")=\\frac{5}{35}=\\frac{1}{7}$;\n", "9. \"Virusga chalinmagan insonda isitma yo'qligi\" $Pr(\"Isitma\\,yo'q\"|\"Salbiy\")=\\frac{55}{60}=\\frac{11}{12}$;\n", "10. \"Isitmasi yo'q insonda virus yo'qligi\" $Pr(\"Salbiy\"|\"Isitma\\,yo'q\")=\\frac{55}{65}=\\frac{11}{13}$.\n", "\n", "Yuqorilardagidan tashqari biz boshqa turdagi ehtimolliklarni ham keltirishimiz mumkin." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yuqoridagi hodisalarning ehtimoliklaridan birinchi 4 tasi juda sodda bo'lib, biz ularni **avvalgi(Ingliz tilida, prior)** ehtimollik deb ataymiz. Keyingi 6 tasini esa tushunish bir oz qiyinorq, eng asosiysi ularning joyi almashganda natija ham o'zgarishini anglash muhim. Hamda biz o'rganmoqchi bo'lgan usul va shu usulni qo'loqmoqchi bo'lgan masalamizning asosiy mohiyati quyidagicha: \"Agar bemorning isitmasi bor yoki yo'qligi aniq bo'lsa, u holda unda virus bo'lish ehtimolini topishimiz kerak\". Eng muhim e'tiborni qaratadigan nuqta bu yerda \"bemorning isitimasi\" borligi berilgan. Demak jadvalga ko'ra, agar bemorda isitma bo'lsa, u holda uning virusga chalinganligining ehtimoligi $\\frac{6}{7}$ ekan. Uning teskarisi, ya'ni, agar isitmasi bo'lmasa, u holda uning virusga chalinganligining ehtimoligi $\\frac{10}{65}=\\frac{2}{13}$ ekan." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Biz o'tgan mavzuda ehtimollar nazariyasning birlamchi qoidalarini o'rgangan edik. End shu qoidalarni ishga solib Bayes metodini ishlab chiqamiz. Tassavur qilamiz bizga $A$ va $B$ hodisalar berilgan. Agar $B$ hodisa berilgan bo'lsa(ya'ni $B$ hodisa sodir bo'lgan), u holda $A$ hodisaning sodir bo'lish ehtimoligi quyidagicha edi:\n", "\n", "\\begin{equation}\n", "Pr(A|B)=\\frac{Pr(A\\cap B)}{P(B)},\n", "\\end{equation}\n", "va buni biz shartli ehtimollik deb atadik.\n", "\n", "Shunga o'xshash agar $A$ hodisa berilgan bo'lsa, u holda $B$ hodisaning sodir bo'lish ehtimoligi quyidagicha bo'ladi:\n", "\n", "\\begin{equation}\n", "Pr(B|A)=\\frac{Pr(A\\cap B)}{P(A)}\n", "\\end{equation}\n", "\n", "Ikkinchi formuladan $Pr(A\\cap B)$ ni topib birinchi formulaga olib borib qo'ysak, unda quydagi formulaga ega bo'lamiz:\n", "\n", "\\begin{equation}\n", "Pr(A|B)=\\frac{Pr(B|A)Pr(A)}{P(B)}\n", "\\end{equation}\n", "\n", "Oxirgi formulani biz Bayes qoidsi deb ataymiz." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Keling endi, yuqoridagi formulani oldingi jadval asosida tuzilgan COVID-19 masalasiga qo'llasak. Hodisalar: $A=\"Ijobiy\"$ va $B=\"Isitma\\,bor\"$. Quyida ushbu hodisalar asosida ehtimoliklar: $Pr(A)=\\frac{2}{5}$, $Pr(B)=\\frac{7}{20}$, $Pr(B|A)=\\frac{3}{4}$. Natija esa quyidagicha bo'ladi: $Pr(A|B)=\\frac{\\frac{3}{4}\\frac{2}{5}}{\\frac{7}{20}}=\\frac{3}{4}\\frac{2}{5}\\frac{20}{7}=\\frac{6}{7}$. Endi isitmasi bor odamning virusga chalinmasligining ehtimoligi esa quyidagicha. Hodisalar va ularning ehtimoligi: $C=\"not\\,A\"$ va $Pr(not\\,A)=\\frac{3}{5}$, $Pr(B|not\\,A)=\\frac{5}{60}=\\frac{1}{12}$. Natija: $Pr(not\\,A|B)=\\frac{\\frac{1}{12}\\frac{3}{5}}{\\frac{7}{20}}=\\frac{1}{12}\\frac{3}{5}\\frac{20}{7}=\\frac{1}{7}$.\n", "\n", "Biz endi ushbu xulosa orqali ehtimolikning eng aosoiy qoidasi bo'lgan, hodisaning ehtimoligi va unga teskari bo'lgan hodisaning ehtimoliklari yig'indisi birga tengligini ko'rishimiz mumkin. Bu yerda $A= not\\, C$, ya'ni \"Ijobiy\"ning teskarisi \"Salbiy\"dir. $Pr(A|B)+Pr(not\\,A|B)=\\frac{6}{7}+\\frac{1}{7}=1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ko'p alomatlar uchun Bayes usuli\n", "\n", "Biz bu usulni bitta alomat bo'lgan holdagina o'rgandik, lekin bittadan oshiq alomat bo'lganda bu usul sal boshqacharoq ko'rnishda tasvirlanadi. Quyida yuqoridagi masalani umumiylashtiramiz. Buning uchun quyidagi hodisalarni qisqalik uchun katta lotin harflari bilan belgilab olamiz: $A=\"Ijobiy\"$, $B=\"Isitma\\,bor\"$ va $C=\"Bosh\\,og'rig'i\\,bor\"$. Yodda tuting teskari hodisalarni: $not\\,A=\"Salbiy\"$, $not\\,B=\"Isitma\\,yo'q\"$ va $not\\,C=\"Bosh\\,og'rig'i\\,yo'q\"$. Biz avvalroq \"Isitma\" bo'yicha jadval keltirgan edik. Shunday jadval \"Bosh og'rig'i\" uchun quyida keltirilgan:\n", "\n", "||Ijobiy|Salbiy|Jami|\n", "|-------|------|-----|------|\n", "|Bosh og'rig'i borlar|35|15|50|\n", "|Bosh og'rig'i yo'qlar|5|45|50|\n", "|Jami|40|60|100|\n", "\n", "Bu jadval uchun yuqoridagi kabi hodisalarning ehtimoliklarini yozmasdan hisoblash jarayonida to'g'ridan-to'g'iri ishlatib ketamiz. Keling avval Quyidagi hodisaning shartli ehtimlogini topaylik, ya'ni virus bo'lishning bosh og'rig'iga bog'langan holda.\n", "\n", "\\begin{equation}\n", "Pr(A|C)=\\frac{Pr(C|A)Pr(A)}{P(C)}=\\frac{\\frac{35}{40}\\frac{2}{5}}{\\frac{1}{2}}=\\frac{35}{40}\\frac{2}{5}\\frac{2}{1}=\\frac{7}{10}\n", "\\end{equation}\n", "\n", "Bosh og'rig'i bor insonning virusga chalinmaganligining ehtimoli esa quyidagicha:\n", "\n", "\\begin{equation}\n", "Pr(not\\,A|C)=\\frac{Pr(C|not\\,A)Pr(not\\,A)}{P(C)}=\\frac{\\frac{15}{60}\\frac{3}{5}}{\\frac{1}{2}}=\\frac{15}{60}\\frac{3}{5}\\frac{2}{1}=\\frac{3}{10}\n", "\\end{equation}\n", "\n", "Biz insoning joriy holatini ifodalovchi ikkita hodisa (\"Isitma bor\" va \"Bosh og'rig'i bor\") asosida shu insoni virusga chalinganligi yoki yo'qligini alohida-alohida aniqladik, ular: $Pr(A|B)=\\frac{6}{7}$ va $Pr(A|C)=\\frac{7}{10}$. Ko'rib turganimizdek ikki hodisa asosida biz ikki xil biri ikkinchisiga teng bo'lmagan ehtimoliklarga ega bo'ldik. Biz bu ehtimolliklarni shu ko'rinishida bemorga taqdim eta olmaymiz, chunki ikkisi ikki xil ko'rsatgich berib turibdi. Uning o'rniga biz ikkisini bitta ko'rnishiga o'tkazishimiz zarur bo'ladi. Bu holdagi Bayes usulini ko'p o'zgaruvchili Bayes usuli deb ataymiz. Ushbu usulni biz yuqoridagi kabi keltirib chiqarishning o'rniga to'g'irida-to'g'iri umumiy formulasini keltiramiz. Biz avvalgi misollarda maxrajdagi qiymatni tashlab yuborsak ham natija o'zgarmaydi chunki ular foiz ko'rinishida chiqarish uchun, umuman olgan umumiy natijani olsak ular yuqolib ketadi. Shuni hisobga olib hamda ikki berilgan hodisani (\"Isitma bor\" va \"Bosh og'rig'i bor\") bog'liqsiz deb olib, quyidagicha yozamiz:\n", "\n", "\n", "\\begin{equation}\n", "Pr(A|B,C)=Pr(A)Pr(B|A)Pr(C|A)\n", "\\end{equation}\n", "\n", "Virus bo'lmasilining ehtimoli esa\n", "\n", "\\begin{equation}\n", "Pr(not\\,A|B,C)=Pr(not\\,A)Pr(B|not\\,A)Pr(C|not\\,A)\n", "\\end{equation}\n", "\n", "Natijani olayotganda biz yuqoridagi ehtimolikllardan kattasini olamiz. Agar natijani foiz ko'rinishida tasvirlash zarur bo'lsa, u holda nisbiy qiymatlarni olishimiz mumkin.\n", "\n", "\\begin{equation}\n", "Pr(A|B,C)=\\frac{Pr(A)Pr(B|A)Pr(C|A)}{Pr(A)Pr(B|A)Pr(C|A)+Pr(not\\,A)Pr(B|not\\,A)Pr(C|not\\,A)}\n", "\\end{equation}\n", "\n", "va \n", "\n", "\\begin{equation}\n", "Pr(not\\,A|B,C)=\\frac{Pr(not\\,A)Pr(B|not\\,A)Pr(C|not\\,A)}{Pr(A)Pr(B|A)Pr(C|A)+Pr(not\\,A)Pr(B|not\\,A)Pr(C|not\\,A)}\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Amaliy masala\n", "\n", "Ushbu usul ehtimolliklarning mashhur va keng amaliy masalalarida qo'llanilib kelinayotgan usulidir. Bu usul orqali biz agar oldindan biror qo'shimcha berilganga ega bo'lsak, ulardan foydalanib hodisaning sodir bo'lish ehtimolini qayta yangilashimiz mumkin. Bu qo'shimcha berilganlar, masalan raqamlangan rasmlarda har bir raqam uchun nechta rasm borligi bo'lishi mumkin. Bu jarayonni ikki bosqichli eksperiment orqali amalga oshiramiz. Bunda birinchi bosqichdagi ba'zi hodisalarning ehtimoliklarini ikkichi bosqich natijalariga ega bo'lgandan keyin topamiz. Keling buni tushunish uchun quyidagicha namunaviy masala olib, undan so'ng uning dasturini tuzsak.\n", "\n", "**Namunaviy masala**. Ushbu masala tibiyotga oid bo'lib, insonlarda qandli diabet (tanada qand miqdorining keskin oshib yoki kamayib ketishi) kasaligi bor-yo'qligini ularning bergan javoblari asosida bashorat qilishdir. Hammaga ma'lumki butun dunyoda ushbu kassalikdan jabr ko'rayotganlar ko'p. Ba'zida, ayniqsa bizning xalqimizda, ushbu kasallikni vaqtida tekshirtirmay yoki aynan shu kasalikka chalinganiligni aniqlashga ancha vaqt ketishi mumkin. Shuning uchun biz agar ushbu kasalikni soddaroq usullarda aniqlashning imkoni topsak, u holda biz insonlarga yordam bergan bo'lar edik.\n", "\n", "**Namunaviy to'plam**. Ushbu masalaga mos keluvchi to'plam bu [*Diabetes Health Indicators Dataset*](https://www.kaggle.com/datasets/alexteboul/diabetes-health-indicators-dataset). Bu to'plam o'zida 70 692 ta inson va ularga berilgan savollarning javoblarini saqlaydi. Ushbu so'rovnomada jami 22 ta savol bo'lib, ulardan birinchi 21 tasi insoning holatini ifodalovchi ko'rsatgichlar bo'lib, oxirgi 1 tasi esa ushbu insonda qandli diabeti borligi yoki yo'qligini ifodalaydi. Ushbu to'plamning qiymatlaridan ba'zilari quyidagi jadvalda keltirilgan:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | Diab | \n", "HBP | \n", "HChol | \n", "CCheck | \n", "BMI | \n", "Smok | \n", "Str | \n", "HDAtt | \n", "PAct | \n", "Fruit | \n", "Veggy | \n", "HACon | \n", "AHCare | \n", "NoDoCost | \n", "GHlth | \n", "MtHlth | \n", "PHlth | \n", "DWalk | \n", "Sex | \n", "Age | \n", "Edu | \n", "Inc | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "14 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "2 | \n", "5 | \n", "30 | \n", "0 | \n", "1 | \n", "3 | \n", "5 | \n", "7 | \n", "
1 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "14 | \n", "1 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "2 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "11 | \n", "5 | \n", "7 | \n", "
2 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "14 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "10 | \n", "0 | \n", "1 | \n", "12 | \n", "5 | \n", "7 | \n", "
3 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "16 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "2 | \n", "0 | \n", "3 | \n", "0 | \n", "1 | \n", "10 | \n", "5 | \n", "7 | \n", "
4 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "17 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "7 | \n", "4 | \n", "7 | \n", "
5 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "6 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "7 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "3 | \n", "6 | \n", "
6 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "14 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "12 | \n", "4 | \n", "5 | \n", "
7 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "19 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "3 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "5 | \n", "3 | \n", "2 | \n", "
8 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "20 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "2 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "2 | \n", "5 | \n", "7 | \n", "
9 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "15 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "2 | \n", "0 | \n", "6 | \n", "0 | \n", "1 | \n", "5 | \n", "3 | \n", "3 | \n", "