← Lesson
Data and Splits
Joeven
Run
Reset
Python loads on first run
import random rng = random.Random(0) rows = [{"id": i, "user": i % 5, "y": int(i % 3 == 0)} for i in range(20)] def random_split(data, frac=0.7): data = list(data) rng.shuffle(data) n = int(frac * len(data)) return data[:n], data[n:] def by_user_split(data, train_users): train = [r for r in data if r["user"] in train_users] test = [r for r in data if r["user"] not in train_users] return train, test tr, te = random_split(rows) overlap = {r["user"] for r in tr} & {r["user"] for r in te} print("random split train", len(tr), "test", len(te), "user overlap", sorted(overlap)) tr2, te2 = by_user_split(rows, train_users={0, 1, 2}) overlap2 = {r["user"] for r in tr2} & {r["user"] for r in te2} print("user split train", len(tr2), "test", len(te2), "user overlap", sorted(overlap2))
Run to execute this in your browser. Nothing is sent to a server.