Skip to content

SRSD Feynman

SRToolkit.dataset.srsd_feynman

SRSD Feynman symbolic regression benchmark.

SRSD_Feynman

SRSD_Feynman(dataset_directory: str = os.path.join(user_data_dir('SRToolkit'), 'srsd_feynman'), n_samples: int = 10000, seed: Optional[int] = 42, force_generate: bool = False)

Bases: SR_benchmark

The SRSD Feynman symbolic regression benchmark.

Contains 120 physics equations from the Feynman Symbolic Regression Dataset with per-variable sampling strategies (log-uniform, linear, or integer with sign constraints). Data is generated on first instantiation and cached as .npz files for subsequent use.

References

Matsubara et al. (2024)

Examples:

>>> benchmark = SRSD_Feynman()
>>> len(benchmark.list_datasets(verbose=False))
120

Parameters:

Name Type Description Default
dataset_directory str

Directory where dataset files are stored or will be generated. Defaults to the platform-appropriate user data directory.

join(user_data_dir('SRToolkit'), 'srsd_feynman')
n_samples int

Number of samples to generate per dataset on first creation or when force_generate=True.

10000
seed Optional[int]

Random seed used for data generation.

42
force_generate bool

If True, skip downloading/loading pre-generated data and always generate fresh data from samplers. Defaults to False.

False
Source code in SRToolkit/dataset/srsd_feynman.py
def __init__(
    self,
    dataset_directory: str = os.path.join(user_data_dir("SRToolkit"), "srsd_feynman"),
    n_samples: int = 10000,
    seed: Optional[int] = 42,
    force_generate: bool = False,
):
    super().__init__("SRSD_Feynman", dataset_directory)
    self._n_samples = n_samples
    self._seed = seed
    self._force_generate = force_generate
    self._populate()