EDUCATION/DSS Online 6기

DAY24 - pgmpy 패키지를 이용한 확률문제 계산

Kululu_ 2021. 2. 22. 12:10

pgmpy 패키지는 "이산확률모형" 즉 표본공간의 크기가 유한한 문제를 해결하는 데 사용할 수 있는 패키지입니다.

 

결합확률모형을 만들고 이를 통해 주변확률과 조건부확률을 계산하는 방식입니다.

JointProbabilityDistribution이라고 하는 클래스를 가져와 사용하는데 이름이 너무 길기 때문에 JPD로 줄여서 많이 사용합니다.

 

JPD클래스를 이용해 결합확률 모형을 위와 같이 만들어낼 수 있습니다.

결합확률의 확률값에 들어가는 값은 순서대로 입력이 되는데 2개의 변수가 있을 때는 (0,0), (0,1), (1,0), (1,1) 순으로 입력되고, 3개의 변수가 있을 때는 (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) 순으로 입력됩니다.

 

물론 각 확률변수에서 발생가능한 단순 사건의 수가 2개가 아니라 더 많다면 그에 맞는 순서로 입력됩니다.

중요한 점은 가장 마지막 확률변수부터 값을 바꿔간다는 점입니다.

 

만들어 낸 결합확률모형 객체를 이용해서 주변확률도 계산할 수 있습니다.

inplace는 객체에 담긴 정보를 변경할 것인지를 묻는 여부로 inplace = True로 실행시키면 JPD객체인 pxy에 담긴 데이터가 주변확률로 바뀌어 버리므로 주의해야합니다.

 

주변확률을 계산할 때와 마찬가지로 JPD객체의 함수를 이용해 조건부확률을 계산해낼 수 있습니다.

 

 

JPD객체를 이용해 변수들간의 독립 여부도 판단할 수 있습니다.