Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทฤษฎีเบย์สำหรับความน่าจะเป็นแบบมีเงื่อนไขใน C/C++


ความน่าจะเป็นแบบมีเงื่อนไข (Conditional Probability) ที่แทนด้วย P(A|B) คือ ความน่าจะเป็นของการเกิดเหตุการณ์ 'A' โดยที่เหตุการณ์ 'B' ได้เกิดขึ้นแล้ว

สูตรความน่าจะเป็นแบบมีเงื่อนไข:

P(A|B) = P(A⋂B) / P(B)

ทฤษฎีของเบย์ (Bayes' Theorem)

เป็นสูตรที่แสดงความสัมพันธ์ระหว่างความน่าจะเป็นของการเกิดเหตุการณ์ที่ขึ้นกันได้ (mutually dependent events) คือ ให้ความสัมพันธ์ระหว่างความน่าจะเป็นแบบมีเงื่อนไขของพวกเขา

ให้เหตุการณ์ A และอีกเหตุการณ์หนึ่ง B ตามทฤษฎีของเบย์:

P(A|B) = {P(B|A) * P(A)} / P(B)

มาดูการนำสูตรทฤษฎีเบย์มาใช้กัน:

เราจะใช้สูตรความน่าจะเป็นแบบมีเงื่อนไข:

P(A|B) = P(A⋂B) / P(B)  --- (1)
P(B|A) = P(B⋂A) / P(A)  --- (2)

เรารู้ว่า A⋂B และ B⋂A เป็นสิ่งเดียวกัน ดังนั้นเราสามารถแทนค่า B⋂A ด้วย A⋂B ในสมการ (2) ได้

P(B|A) = P(A⋂B) / P(A)
P(B|A) * P(A) = P(A⋂B)  --- (3)

ตอนนี้ ใช้นิพจน์นี้สำหรับ A⋂B ในสมการ (1) เราจะได้สูตรทฤษฎีเบย์

P(A|B) = {P(B|A) * P(A)} / P(B)

กฎการคูณ (Product Rule)

แสดงในสมการ (3) ระบุว่าความน่าจะเป็นที่เหตุการณ์ทั้งสองจะเกิดขึ้นในทดลองเดียวกัน เท่ากับผลคูณของความน่าจะเป็นแบบมีเงื่อนไขของเหตุการณ์ และความน่าจะเป็นของการเกิดเหตุการณ์หลักฐาน (evidence event)

P(A⋂B) = P(A|B) * P(B)

จากกฎนี้ เราสามารถนำสูตรสำคัญ 2 สูตรมาได้:

ถ้า A ⊆ B คือ A เป็นสับเซตของ B หมายถึง ทุกสมาชิกของเซต A อยู่ในเซต B แล้ว

P(A⋂B) = P(A), ดังนั้น P(A|B) = P(A) / P(B)

ถ้า B ⊆ A คือ B เป็นสับเซตของ A หมายถึง ทุกสมาชิกของเซต B อยู่ในเซต A แล้ว

P(A⋂B) = P(B), ดังนั้น P(A|B) = 1

ทฤษฎีเบย์สำหรับเหตุการณ์มากกว่า 3 เหตุการณ์

ถ้าเรามีเหตุการณ์ที่ขึ้นกันได้มากกว่า 3 เหตุการณ์ ความน่าจะเป็นแบบมีเงื่อนไขของพวกเขาจะมีความสัมพันธ์ดังนี้:

P(X1|Y) = (P(X1)*P(Y|X1)) / [P(X1*P(Y|X1)) + P(X2*P(Y|X2)) + P(X3*P(Y|X3)) + ...]