Pseudowillekeurige getallengeneratie

Steekproeven in Python

James Chapman

Curriculum Manager, DataCamp

Wat betekent ‘random’?

{adjective} gemaakt, gedaan, voorkomend of gekozen zonder methode of bewuste beslissing.

1 Oxford Languages
Steekproeven in Python

Echte willekeurige getallen

  • Gegenereerd uit fysieke processen, zoals muntgooien
  • Hotbits gebruikt radioactief verval
  • RANDOM.ORG gebruikt atmosferische ruis
  • Echte willekeur is duur
1 https://www.fourmilab.ch/hotbits 2 https://www.random.org
Steekproeven in Python

Pseudowillekeurige getallengeneratie

  • Pseudowillekeurige getallen zijn goedkoop en snel
  • Volgend ‘willekeurig’ getal uit het vorige berekend
  • Het eerste ‘willekeurige’ getal komt uit een seed
  • Dezelfde seed geeft dezelfde getallen
Steekproeven in Python

Voorbeeld: pseudowillekeurige getallen

seed = 1
calc_next_random(seed)
3
calc_next_random(3)
2
calc_next_random(2)
6
Steekproeven in Python

Functies voor willekeurige getallen

  • Zet numpy.random ervoor, zoals numpy.random.beta()
function distribution function distribution
.beta Beta .hypergeometric Hypergeometrisch
.binomial Binomiaal .lognormal Lognormaal
.chisquare Chi-kwadraat .negative_binomial Negatief binomiaal
.exponential Exponentieel .normal Normaal
.f F .poisson Poisson
.gamma Gamma .standard_t t
.geometric Geometrisch .uniform Uniform
Steekproeven in Python

Willekeurige getallen visualiseren

randoms = np.random.beta(a=2, b=2, size=5000)
randoms
array([0.6208281 , 0.73216171, 0.44298403, ..., 
       0.13411873, 0.52198411, 0.72355098])
plt.hist(randoms, bins=np.arange(0, 1, 0.05))
plt.show()

hist-beta.png

Steekproeven in Python

Zaden voor willekeurige getallen

np.random.seed(20000229)
np.random.normal(loc=2, scale=1.5, size=2)
array([-0.59030264, 1.87821258])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.52619561, 4.9684949 ])
np.random.seed(20000229)
np.random.normal(loc=2, scale=1.5, size=2)
array([-0.59030264, 1.87821258])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.52619561, 4.9684949 ])
Steekproeven in Python

Een andere seed gebruiken

np.random.seed(20000229)
np.random.normal(loc=2, scale=1.5, size=2)
array([-0.59030264, 1.87821258])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.52619561, 4.9684949 ])
np.random.seed(20041004)
np.random.normal(loc=2, scale=1.5, size=2)
array([1.09364337, 4.55285159])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.67038916, 2.36677492])
Steekproeven in Python

Laten we oefenen!

Steekproeven in Python

Preparing Video For Download...