Python에서 베이즈 정리를 적용하는 방법
베이즈 정리는 두 사건 A 와 B 에 대해 다음과 같이 명시합니다 .
P(A|B) = P(A)*P(B|A) / P(B)
금:
- P(A|B): 사건 B가 주어졌을 때 사건 A가 발생할 확률입니다.
- P(B|A): 사건 A가 발생한 경우 사건 B가 발생할 확률입니다.
- P(A): 사건 A의 확률입니다.
- P(B): 사건 B의 확률입니다.
예를 들어 날씨가 흐릴 확률이 40%라고 가정해보자.
또한 특정 날짜에 비가 올 확률이 20%라고 가정해 보겠습니다.
또한 비오는 날 구름이 있을 확률이 85%라고 가정해보자.
특정 날짜에 밖이 흐리면 그날 비가 올 확률은 얼마나 됩니까?
해결책 :
- P(흐림) = 0.40
- P(비) = 0.20
- P(흐림 | 비) = 0.85
따라서 우리는 다음을 계산할 수 있습니다.
- P(비 | 흐림) = P(비) * P(흐림 | 비) / P(흐림)
- P(비 | 흐림) = 0.20 * 0.85 / 0.40
- P(비 | 흐림) = 0.425
날씨가 흐린 경우 그날 비가 올 확률은 42.5% 입니다.
Python에서 Bayes의 정리를 적용하기 위해 다음과 같은 간단한 함수를 만들 수 있습니다.
def bayesTheorem (pA, pB, pBA): return pA * pBA / pB
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예: Python의 베이즈 정리
다음과 같은 확률을 알고 있다고 가정합니다.
- P(비) = 0.20
- P(흐림) = 0.40
- P(흐림 | 비) = 0.85
P(비 | 흐림)를 계산하려면 다음 구문을 사용할 수 있습니다.
#define function for Bayes' theorem def bayesTheorem (pA, pB, pBA): return pA * pBA / pB #define probabilities pRain = 0.2 pCloudy = 0.4 pCloudyRain = 0.85 #use function to calculate conditional probability bayesTheorem(pRain, pCloudy, pCloudyRain) 0.425
이는 특정 날짜에 밖이 흐리면 그 날 비가 올 확률이 0.425 , 즉 42.5% 라는 것을 알려줍니다.
이는 이전에 수동으로 계산한 값과 일치합니다.
추가 리소스
다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Python에서 조건부 확률을 계산하는 방법
Python에서 기대값을 계산하는 방법
Python에서 절사 평균을 계산하는 방법