Random numbers from aGrUM
These functions use the aGrUM’s peuso-random number generator (mt19937)from pyagrum. It produces 32-bit pseudo-random numbers using the well-known and popular algorithm named Mersenne twister algorithm. mt19937 stands for m`ersenne `t`wister with a long period of 2`19937 – 1 which means mt19937 produces a sequence of 32-bit integers that only repeats itself after 219937 – 1 number have been generated.
Random functions
Section titled “Random functions”pyagrum.initRandom(seed=0)
Section titled “pyagrum.initRandom(seed=0)”Initialize random generator seed. If seed=0, the generator is initialized from the current time in ms. seed!=0 allows to fix the generator in a certain stage and then allows to repeat the same pseudo-random numbers sequence.
- Parameters: seed (int) – the seed used to initialize the random generator (0 if using time)
- Return type:
None
pyagrum.randomProba()
Section titled “pyagrum.randomProba()”- Returns: a random number between 0 and 1 included (i.e. a proba).
- Return type: float
pyagrum.randomDistribution(n)
Section titled “pyagrum.randomDistribution(n)”- Parameters: n (int) – The number of modalities for the ditribution.
- Return type: a random discrete distribution.
pyagrum.generateSample(bn, n=1, name_out=None, show_progress=False, with_labels=True, random_order=True)
Section titled “pyagrum.generateSample(bn, n=1, name_out=None, show_progress=False, with_labels=True, random_order=True)”generate a CSV file of samples from a bn.
- Parameters:
- bn (pyagrum.BayesNet) – the Bayes Net from which the sample is generated
- n (int) – the number of samples
- name_out (str) – the name for the output csv filename. If name_out is None, a pandas.DataFrame is generated
- show_progress (bool) – if True, show a progress bar. Default is False
- with_labels (bool) – if True, use the labels of the modalities of variables in the csv. If False, use their ids. Default is True
- random_order (bool) – if True, the columns in the csv are randomized sorted. Default is True
- Returns: the log2-likelihood of the generated base or if name_out is None, the couple (generated pandas.DataFrame,log2-likelihood)
- Return type: float|Tuple[pandas.DataFrame,float]
pyagrum.randomBN(, n=5, names=None, ratio_arc=1.2, domain_size=2)
Section titled “pyagrum.randomBN(, n=5, names=None, ratio_arc=1.2, domain_size=2)”Creates a random BN using the (forced) keyword parameters. This function use pyagrum.BNGenerator but the random
variables will be named w.r.t. a topological order.
Warning
Number of nodes given with arg n`or `names must be bigger than 4, in order to be consistant
Examples
>>> bn=pyagrum.randomBN()>>> bn=pyagrum.randomBN(n=10)>>> bn=pyagrum.randomBN(names="ABCDEF")>>> bn=pyagrum.randomBN(names=["Asia","Tuberculosis","Smoking"],ratio_arc=1.5,domain_size=3)Warning
This function has only keyword parameters (no positional).
- Parameters:
- n (int) – number of nodes
- names (List [**str ]) – list of names
- ratio_arc (float) – number of arcs = n * ratio_arc
- domain_size (int) – the domain size for the variables.
- Return type:
BayesNet - Returns: pyagrum.BayesNet