Videnskab
 Science >> Videnskab >  >> Math

Probabilistisk programmering gør i 50 linjer kode, hvad der plejede at tage tusindvis

Probabilistisk programmering giver brugerne mulighed for at udtrykke deres modeller på en mere deklarativ måde, hvilket gør koden mere læsbar og vedligeholdelig. Her er et eksempel:

``` python

import numpy som np

importer pymc3 som pm

Definer modellen

model =pm.Model()

Definer variablerne

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

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

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

Definer observationerne

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

Tilpas modellen til observationerne

trace =model.sample(draws=1000, chains=4)

Udskriv resultaterne

print (spor)

```

Denne kode definerer en simpel probabilistisk model med tre variable, `x`, `y` og `z`. Variablerne "x" og "y" er defineret som uafhængige normalfordelte tilfældige variable, og "z" er defineret som summen af ​​"x" og "y". Modellen tilpasses derefter til tre observationer ved hjælp af Markov-kæden Monte Carlo (MCMC) prøvetagning, og resultaterne udskrives.

Denne kode er meget mere kortfattet end traditionelle programmeringstilgange til statistiske modeller, hvilket ville involvere manuelt at udskrive sandsynlighedsfunktionen og MCMC-samplingalgoritmen. Probabilistisk programmering gør det lettere at skrive komplekse statistiske modeller og fokusere på modelleringsopgaven frem for implementeringsdetaljerne.