Python NumPy를 사용하여 베르누이 분포 구현

Vaibhhav Khetarpal 2023년1월30일
  1. 베르누이 분포
  2. 이항 분포
  3. Python에서 NumPy의 도움으로 베르누이 분포 구현
Python NumPy를 사용하여 베르누이 분포 구현

통계학에서 정말 중요한 주제인 베르누이 분포는 데이터를 다루는 데 도움이 되기 때문에 데이터 과학, 기계 학습 및 기타 관련 분야의 필수적인 측면입니다. 이 튜토리얼은 베르누이 배포판과 NumPy 라이브러리의 도움으로 파이썬에서 구현하는 방법을 보여줍니다.

베르누이 분포에 대해 이야기할 때 항상 이항 분포라는 용어가 떠오릅니다. 이 용어는 유사하지만 일부 작동 방식이 다릅니다.

이 두 배포판은 서로 다른 시간에 문제를 더 쉽게 만드는 데 유용합니다. 아래 기사에 설명된 대로 이러한 용어를 이해하고 효과적으로 구별하는 것이 중요합니다.

베르누이 분포

간단히 말해서 단일 시행에서 두 가지 가능한 결과만 있는 경우 이 주어진 데이터는 베르누이 분포를 구현하는 데 적합합니다.

베르누이 배포의 직접 구현은 SciPy 라이브러리의 도움으로 수행할 수 있습니다. 그러나 NumPy 라이브러리는 이 배포판을 구현하기 위해 간접적으로 사용될 수도 있습니다.

좀 더 명확하게 설명하기 위해 베르누이 분포를 D(b)로 지정합니다.

이항 분포

이항 분포의 개념은 베르누이 시행(Bernoulli Trials)의 그룹 또는 집합을 다루는 것으로 정의할 수 있습니다. 이 그룹 또는 집합의 번호는 일반적으로 정의할 수 있습니다.

간단히 말해서 이항 분포는 개별 이벤트의 단일 시행을 처리하는 베르누이 분포와 비교하여 개별 이벤트의 여러 시행을 처리합니다.

위에서 베르누이 분포를 D(b)로 지정하는 것과 관련하여 이항 분포는 D(n,b)로 지정됩니다. 이 할당은 이러한 용어 간의 관계를 반영합니다.

Python에서 NumPy의 도움으로 베르누이 분포 구현

베르누이 분포에 대해 이야기할 때 이항 분포의 의미가 무엇인지 궁금할 것입니다. 큰 의미가 있습니다.

NumPy 라이브러리는 NumPy.random.binomial() 함수를 직접 사용하여 이항 분포를 구현합니다. NumPy.random.binomial() 함수의 구문은 아래에서 볼 수 있습니다.

random.binomial(n, p, size=None)

이 함수의 매개변수는 사용자의 명확한 이해를 위해 정의됩니다.

  • n: 시행 횟수입니다. float 또는 integer로 입력할 수 있지만 결국 int 값으로 잘립니다.
  • p: 성공 확률입니다. 항상 0보다 크거나 1보다 작습니다. 부동 소수점 값입니다.
  • size: 출력의 모양을 제공하는 데 도움이 됩니다. None으로 설정하면 단일 값만 제공합니다.

이 경우 베르누이 시행 횟수의 값을 1로 지정하면 이항 분포 내에서 베르누이 분포를 간접적으로 구현할 수 있습니다.

다음 코드는 NumPy.random.binomial 함수를 사용하여 Python에서 베르누이 분포를 구현합니다.

앞면과 뒷면의 두 가지 가능성만 있는 동전을 4번 던진 예를 들어보겠습니다. n1로 사용하면 이항 분포가 아닌 베르누이 분포에 해당하므로 코드에서 진행할 것입니다.

import numpy as dragon

n = 1
p = 0.5
x = dragon.random.binomial(n, p, size=4)
print(x)

위의 코드는 다음과 같은 출력을 제공합니다.

[1 0 0 1]

여기서는 4번 테스트한 단일 동전을 던진 결과를 보여주었다. 무작위 시도이므로 프로그램을 다시 실행하면 다른 출력 세트가 생성될 수 있다는 점에 유의하는 것이 중요합니다.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn