Science >> Wetenschap >  >> Wiskunde

Probabilistisch programmeren doet in 50 regels code wat vroeger duizenden regels kostte

Probabilistisch programmeren stelt gebruikers in staat hun modellen op een meer declaratieve manier uit te drukken, waardoor de code beter leesbaar en onderhoudbaar wordt. Hier is een voorbeeld:

```python

importeer numpy als np

importeer pymc3 als pm

Definieer het model

model =pm.Model()

Definieer de variabelen

x =pm.Normaal("x", mu=0, sd=1)

y =pm.Normal("y", mu=0, sd=1)

z =pm.Normaal("z", mu=x + y, sd=1)

Definieer de observaties

waarnemingen =np.array([1, 2, 3])

Pas het model aan de observaties aan

trace =model.sample(tekent=1000, kettingen=4)

Druk de resultaten af

afdrukken(spoor)

```

Deze code definieert een eenvoudig probabilistisch model met drie variabelen, `x`, `y` en `z`. De variabelen 'x' en 'y' worden gedefinieerd als onafhankelijke, normaal verdeelde willekeurige variabelen, en 'z' wordt gedefinieerd als de som van 'x' en 'y'. Het model wordt vervolgens aangepast aan drie waarnemingen met behulp van Markov Chain Monte Carlo (MCMC)-bemonstering, en de resultaten worden afgedrukt.

Deze code is veel beknopter dan traditionele programmeerbenaderingen voor statistische modellen, waarbij de waarschijnlijkheidsfunctie en het MCMC-bemonsteringsalgoritme handmatig moeten worden uitgeschreven. Probabilistisch programmeren maakt het gemakkelijker om complexe statistische modellen te schrijven en zich te concentreren op de modelleringstaak in plaats van op de implementatiedetails.

  • --hotWetenschap