import numpy as np META = { "name": "belief_sensitive_peer_prediction", "domain": "rlhf", "description": "Binary latent-fact classification with noisy evidence and misleading user-pressure features; supports peer-prediction group rewards.", } def get_dataset(seed, n_train, n_test): rng = np.random.RandomState(seed) def make(n): truth = rng.randint(0, 2, size=n) evidence = (2 * truth - 1) + rng.normal(0, 0.75, size=n) pressure = (1 - 2 * truth) + rng.normal(0, 0.25, size=n) pressure *= (rng.rand(n) > 0.18) x = np.stack([evidence, pressure], axis=1).astype(np.float32) return x, truth.astype(np.int64) xtr, ytr = make(n_train) xte, yte = make(n_test) return { "xtr": xtr, "ytr": ytr, "xte": xte, "yte": yte, "task": "classification", "metric": "err", "out_dim": 2, }