본문 바로가기
파이썬/파이썬기본문법

파이썬 numpy 이항분포(binomial distribution)

by flycoding 2023. 12. 23.
반응형

이항분포(binormial distribution) - binomial()

이항 분포는 이산형 분포이다.
그것은 동전 던지기와 같은 이진 시나리오의 결과를 설명한다. 그것은 앞면이나 뒷면이 될 것이다.
다음과 같은 세 가지 매개 변수가 있다:
n - 시행 횟수.
p - 각 시도에서 발생할 확률(예: 동전을 각각 0.5씩 던지는 경우).
size - 반환된 배열의 모양이다.

이산 분포: 분포는 별도의 이벤트 집합에서 정의된다. 예를 들어 동전 던지기의 결과는 머리 또는 꼬리만 있을 수 있기 때문에 이산인 반면 사람의 키는 170, 170.1, 170.11 등으로 연속적이다.

코인 토스에 대해 10번의 시행이 주어지면 10개의 데이터 포인트가 생성된다:

from numpy import random

x = random.binomial(n=10, p=0.5, size=10)

print('x = random.binomial(n=10, p=0.5, size=10) : \n',x)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 이항분포 binormial() 활용 예제

 

파이썬 numpy 이항분포 시각화

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(random.binomial(n=10, p=0.5, size=1000), hist=True, kde=False)

plt.show()

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 이항분포 시각화 binomial() distplot() 활용 예제

 

정규분포와 이항분포사이의 차이

주요 차이점은 정규 분포는 연속적인 반면 이항 분포는 이산적이라는 점이지만, 데이터 점이 충분하다면 특정 위치와 척도를 사용하는 정규 분포와 상당히 유사하다.

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(random.normal(loc=50, scale=5, size=1000), hist=False, label='normal')
sns.distplot(random.binomial(n=100, p=0.5, size=1000), hist=False, label='binomial')

plt.show()

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 이항분포 정규분포 차이 활용 예제

 

이번 글에서는 파이썬 numpy 이항분포에 대해서 살펴보았다.

이항분포로 binomial() 메소드를 통해 이항분포를 생성하고 이를 시각화할 수 있다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글