{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2605-12704","title":"FePySR: A Neural Feature Extraction Framework for Efficient and Scalable Symbolic Regression","arxiv_id":"2605.12704","date":"2026-05-12","proceeding":null,"authors":["Zhiming Yu","Wangtao Lu","Xin Lai"],"abstract":"A fundamental challenge in symbolic regression (SR) is efficiently recovering complex mathematical expressions from observational data. Although this problem is NP-hard, many expressions of practical interest decompose naturally into combinations of nonlinear feature modules, concentrating structural complexity into a small number of reusable components. Here, we introduce FePySR, a two-stage framework that reduces the SR search space by extracting valid features prior to equation search. FePySR first employs a heterogeneous neural network to constrain observational data to a set of candidate expressions, then performs structural optimization within this refined expression space using PySR. Across five standard benchmarks, FePySR outperforms state-of-the-art methods by achieving higher equation recovery rates. On a set of 75 highly complex synthesized equations, FePySR recovers 36 equations, while producing substantially smaller mean squared errors on the remaining unrecovered cases, with reduced computation time compared to PySR. FePySR's first stage also maintains consistent performance under varying numbers of selected top features and increasing levels of noise in the observational data. Applied to ordinary differential equations governing biological systems, FePySR successfully identifies governing equations in 24 out of 100 tests where PySR recovers none. Taken together, FePySR is a generalizable framework that can enhance the SR solvers, enabling the efficient and reliable recovery of symbolic expressions across scientific domains.","url_abs":"https://arxiv.org/abs/2605.12704","url_pdf":"https://arxiv.org/pdf/2605.12704","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2605.12704","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2605.12704"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/laixn/FePySR","reach":null}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":7,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"cafccbb9b5d1ca86","entry":"R_scor","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/pysr_train.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/pysr_train.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cafccbb9b5d1ca86"}},{"code_sha256_prefix":"9222c8f49936f557","entry":"count_all_expressions","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/feature_maker.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/feature_maker.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9222c8f49936f557"}},{"code_sha256_prefix":"93bfd80df373cb59","entry":"merge_experiment_results","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/feature_maker.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/feature_maker.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"93bfd80df373cb59"}},{"code_sha256_prefix":"79ac7c4d082c8f49","entry":"squared_loss","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/optimization.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/optimization.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"79ac7c4d082c8f49"}},{"code_sha256_prefix":"90cc682ff8b861b2","entry":"svd_ridge_regression","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/optimization.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/optimization.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"90cc682ff8b861b2"}},{"code_sha256_prefix":"fba5d4f0097cf27d","entry":"extract_layer_expressions","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/feature_maker.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/feature_maker.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fba5d4f0097cf27d"}},{"code_sha256_prefix":"7c272f2a1acfcd4c","entry":"run_experiments","repo":"laixn/FePySR","repo_kind":"found_in_text","path":"fepysr/fmn_train.py","file_url":"https://github.com/laixn/FePySR/blob/HEAD/fepysr/fmn_train.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7c272f2a1acfcd4c"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,795 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6795},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}