Python으로 동전 던지기

Python으로 배우는 확률 기초

Alexander A. Ramírez M.

CEO @ Synergy Vision

확률

  • 데이터 과학의 기초
  • 모형에서 데이터 생성 가능
  • 무작위 현상의 규칙성 연구
Python으로 배우는 확률 기초

직관 얻기

...동전 던지기로

동전 던지기

Python으로 배우는 확률 기초

결과는 두 가지뿐

앞면 또는 뒷면

1센트 앞면과 뒷면

Python으로 배우는 확률 기초

Python에서 동전 던지기

베르누이 실험

from scipy.stats import bernoulli
bernoulli.rvs(p=0.5, size=1)
array([0])

다시 추출

bernoulli.rvs(p=0.5, size=1)
array([1])
Python으로 배우는 확률 기초

여러 개의 동전 던지기

size를 바꿔 더 많이 던지기...

bernoulli.rvs(p=0.5, size=10)
array([0, 0, 0, 0, 0, 0, 1, 1, 0, 0])

앞면 개수는?

sum(bernoulli.rvs(p=0.5, size=10))
5
Python으로 배우는 확률 기초

여러 개의 동전 던지기 (계속)

또 한 번 추출...

sum(bernoulli.rvs(p=0.5, size=10))
2
Python으로 배우는 확률 기초

여러 개의 동전 던지기 (계속)

이항 확률변수

from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1)
array([7])

여러 번 추출

binom.rvs(n=10, p=0.5, size=10)
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
Python으로 배우는 확률 기초

여러 개의 동전 던지기 (계속)

치우친 동전 추출

binom.rvs(n=10, p=0.3, size=10)
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
Python으로 배우는 확률 기초

난수 생성기 시드

  • rvs() 함수의 random_state 매개변수 사용
from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1, random_state=42)
  • numpy.random.seed() 사용
import numpy as np
np.random.seed(42)
Python으로 배우는 확률 기초

난수 생성기 시드 (계속)

시드를 고정해 공정한 동전 10회 던지기

from scipy.stats import binom
import numpy as np

np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
Python으로 배우는 확률 기초

Python으로 동전 던지기 실습해 봅시다

Python으로 배우는 확률 기초

Preparing Video For Download...