astroautomata/pysr

High-Performance Symbolic Regression in Python and Julia

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 10 minutes ago
Added to GitGenius on September 18th, 2026
Created on September 14th, 2020
Open Issues & Pull Requests: 136 (+0)
GitHub issues: Enabled
Number of forks: 351
Total Stargazers: 3,767 (+0)
Total Subscribers: 30 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 34.8 days
90th percentile: 2.7 days
Tracked items: 91

Most active contributors

Sign in to see contributor activity.

How this project is maintained

73% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 33
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 582 days
Stale 30+ days: 33
Stale 90+ days: 31

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (54)
  • enhancement (23)
  • priority: high (3)
  • question (2)
  • off topic (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

PySR is a symbolic regression tool that discovers interpretable mathematical equations from data using evolutionary algorithms implemented in Python and Julia.

The tool addresses the problem of finding explicit symbolic expressions that fit data while remaining human-readable, which contrasts with black-box machine learning models. It uses a genetic algorithm-based search engine built in Julia and exposed through a Python interface. The approach is designed for interpretability: symbolic regression produces equations that can be analyzed directly, and the tool extends this capability to neural networks through symbolic distillation, allowing conversion of trained deep learning models into analytical equations for inspection and understanding.

PySR suits projects where interpretability matters more than maximum predictive accuracy, particularly those working with low-dimensional datasets where symbolic solutions are feasible. The tool is configurable for different search strategies and objectives, and integrates with the scikit-learn ecosystem. It supports distributed computation across multiple processes and machines for scaling searches. Users working with high-dimensional data can apply symbolic distillation to first train a neural network, then extract symbolic approximations of its behavior.

The project maintains active engagement with users through a discussion forum and accepts contributions documenting applications. Development prioritizes performance optimization and configurability alongside usability, with the Julia backend receiving parallel development to improve the search engine's capabilities.