1import numpy as np
4SOURCE_FILE = "bernoulli/__init__.py"
7def create_bernoulli(*, n_samples: int, p: float, seed: int) -> np.ndarray:
8 rng = np.random.default_rng(seed)
9 x = rng.binomial(1, p, n_samples).astype(np.uint8)
10 return x
13tags = ["binary", "integer", "discrete", "synthetic"]
15datasets = [
16 {
17 "name": "bernoulli-0.1",
18 "version": "3",
19 "create": lambda: create_bernoulli(n_samples=1_000_000, p=0.1, seed=0),
20 "description": "Binary sequence with 10% probability of ones.",
21 "tags": tags,
22 "source_file": SOURCE_FILE,
23 },
24 {
25 "name": "bernoulli-0.2",
26 "version": "3",
27 "create": lambda: create_bernoulli(n_samples=1_000_000, p=0.2, seed=0),
28 "description": "Binary sequence with 20% probability of ones.",
29 "tags": tags,
30 "source_file": SOURCE_FILE,
31 },
32 {
33 "name": "bernoulli-0.3",
34 "version": "3",
35 "create": lambda: create_bernoulli(n_samples=1_000_000, p=0.3, seed=0),
36 "description": "Binary sequence with 30% probability of ones.",
37 "tags": tags,
38 "source_file": SOURCE_FILE,
39 },
40 {
41 "name": "bernoulli-0.4",
42 "version": "3",
43 "create": lambda: create_bernoulli(n_samples=1_000_000, p=0.4, seed=0),
44 "description": "Binary sequence with 40% probability of ones.",
45 "tags": tags,
46 "source_file": SOURCE_FILE,
47 },
48 {
49 "name": "bernoulli-0.5",
50 "version": "3",
51 "create": lambda: create_bernoulli(n_samples=1_000_000, p=0.5, seed=0),
52 "description": "Binary sequence with 50% probability of ones and 50% probability of zeros.",
53 "tags": tags,
54 "source_file": SOURCE_FILE,
55 },
56]