Skip to content

Algorithms

KD puts seven equation-discovery algorithms behind one intermediate representation and one API: switching algorithms means changing kd.Model(algorithm=...), with the same dataset and the same way of reading the result. The derivatives are computed by the platform to each algorithm's declared requirement, so their source can differ (see derivative sources). Each algorithm constructs its own final score, so those numbers do not line up across algorithms; refit the same terms in one context with evaluate_terms first, as described in score conventions and comparability.

Algorithm list

All seven are stated in the same terms, column by column, under the name each one is published as; the last column links its paper. The identifier kd.Model(algorithm=...) takes is in the spec strip at the top of every algorithm page, and the authors' code repository is in the references on the same page.

Algorithm Score Cost Derivatives Equation form Data layout Source
SGA-PDE AIC min medium finite_diff autograd EVOLUTION grid Chen et al. (2022)
DLGA-PDE DLGA fitness min heavy autograd EVOLUTION grid Xu et al. (2020)
DISCOVER reward max heavy finite_diff EVOLUTION REGRESSION grid tabular Du et al. (2024)
EqGPT EqGPT reward max heavy finite_diff EVOLUTION HOMOGENEOUS grid scattered Xu et al. (2025)
LLM4ED LLM4ED sparse reward max medium finite_diff EVOLUTION grid Du et al. (2024)
PySR NMSE min medium finite_diff EVOLUTION REGRESSION grid tabular Cranmer (2023)
PySINDy NMSE min light finite_diff EVOLUTION grid de Silva et al. (2020)

Algorithm pages