PySR VS Bigsimr.jl

Compare PySR vs Bigsimr.jl and see what are their differences.

Bigsimr.jl

Simulate multivariate distributions with arbitrary marginals. (by SchisslerGroup)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
PySR Bigsimr.jl
7 4
1,911 4
- -
9.6 8.1
4 days ago about 1 month ago
Python Julia
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

PySR

Posts with mentions or reviews of PySR. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-04.
  • Potential of the Julia programming language for high energy physics computing
    10 projects | news.ycombinator.com | 4 Dec 2023
    > Yes, julia can be called from other languages rather easily

    This seems false to me. StaticCompiler.jl [1] puts in their limitations that "GC-tracked allocations and global variables do not work with compile_executable or compile_shlib. This has some interesting consequences, including that all functions within the function you want to compile must either be inlined or return only native types (otherwise Julia would have to allocate a place to put the results, which will fail)." PackageCompiler.jl [2] has the same limitations if I'm not mistaken. So then you have to fall back to distributing the Julia "binary" with a full Julia runtime, which is pretty heavy. There are some packages which do this. For example, PySR [3] does this.

    There is some word going around though that there is an even better static compiler in the making, but as long as that one is not publicly available I'd say that Julia cannot easily be called from other languages.

    [1]: https://github.com/tshort/StaticCompiler.jl

    [2]: https://github.com/JuliaLang/PackageCompiler.jl

    [3]: https://github.com/MilesCranmer/PySR

  • Symbolicregression.jl – High-Performance Symbolic Regression in Julia and Python
    2 projects | news.ycombinator.com | 15 Jul 2023
  • [D] Is there any research into using neural networks to discover classical algorithms?
    2 projects | /r/MachineLearning | 1 Jan 2023
    I first learned about it with PySR https://github.com/MilesCranmer/PySR, they have an arxiv paper with some use cases as well.
  • Symbolic Regression is NP-hard
    1 project | news.ycombinator.com | 13 Nov 2022
    I encourage everyone to read this paper. It's well written and easy to follow along. To the uninitiated, SR is the problem of finding a mathematical (symbolic) expression that most accurately describes a dataset of input-output examples (regression). The most naive implementation of SR is basically a breath first search starting from the simplest program tree: x -> sin(x) -> cos(x) ... sin(cos(tan(x))) until timeout. However, we can prune out equivalent expressions and, in general, the problem is embarrassingly parallel which alludes to some hope that we can solve this pretty fast (check out PySR[1] for a modern implementation). I find SR fascinating because it can be used for model distillation: learn a DNN approximation and "distill" it to a symbolic program.

    Note that the paper talks about the decision version of the SR problem. ie: can we discover the global optimum expression. I think this proof is important for the SR community but not particularly surprising (to me). However, I'm excited by the potential future work for this paper! A couple of discussion points:

    * First, SR is technically a bottom up program synthesis problem where the DSL (math) has an equivalence operator. Can we use this proof to impose stronger guarantees on the "hyperparameters" for bottom up synthesis. Conversely, does the theoretical foundation of the inductive synthesis literature [2] help us define tighter bounds?

    * Second, while SR itself is NP hard, can we say anything about the approximate algorithms (eg: distilling a deep neural network to find a solution[3])? Specifically, what proof tell us about the PAC learnability of SR?

    Anyhow, pretty cool seeing such work getting more attention!

    [1] https://github.com/MilesCranmer/PySR

    [2] https://susmitjha.github.io/papers/togis17.pdf

    [3] https://astroautomata.com/paper/symbolic-neural-nets/

  • ‘Machine Scientists’ Distill the Laws of Physics from Raw Data
    8 projects | news.ycombinator.com | 10 May 2022
    I found it curious that one of the implementations of symbolic regression (the "machine scientist" referenced in the article) is a Python wrapper on Julia: https://github.com/MilesCranmer/PySR

    I don't think I've seen a Python wrapper on Julia code before.

  • Is it possible to create a Python package with Julia and publish it on PyPi?
    6 projects | /r/Julia | 23 Apr 2022
  • [D] Inferring general physical laws from observations in 300 lines of code
    1 project | /r/MachineLearning | 2 Aug 2021
    This is really neat! Since you're interested in this subject, you may also appreciate PySR and the corresponding paper which uses Graph Neural Networks to perform symbolic regression.

Bigsimr.jl

Posts with mentions or reviews of Bigsimr.jl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-23.
  • Is it possible to create a Python package with Julia and publish it on PyPi?
    6 projects | /r/Julia | 23 Apr 2022
    One more example for you. Our group wrote our core package in Julia called Bigsimr.jl (here) and then wrote interfaces to it for R (here and on cran) and Python (here and on PyPi)
  • some may hate it, some may love it
    5 projects | /r/Julia | 27 Jun 2021
    Mostly, but I used it to write a package that does multivariate simulation via gaussian copulas with correlation matching. You can find it here.
  • Copula: Can someone explain this code?
    1 project | /r/rstats | 10 Jun 2021
    We wrote a Julia package that can do this called Bigsimr which also has an R interface. Message me if you have more questions.
  • [D] What's your favorite concept/rule/theorem in statistics and why?
    3 projects | /r/statistics | 27 Apr 2021
    I wrote a Julia library that basically applies this idea, but extends it to multivariate distributions. We sample from a multivariate normal, transform the margins to uniform (via the normal cdf), and then transform to the desired distribution using the margins inverse cdf's (called the NORTA algorithm). The caveat is that this transformation is non-linear, so the correlation matrix used to generate the multivariate normal samples is generally not the same as the correlation after transformation. We account for this by numerically solving for the n*(n-1)/2 double integrals to determine what input correlation is necessary to get the desired output correlation. This paper describes the full problem and method for solving.

What are some alternatives?

When comparing PySR and Bigsimr.jl you can also consider the following projects:

GeneticAlgorithmPython - Source code of PyGAD, a Python 3 library for building the genetic algorithm and training machine learning algorithms (Keras & PyTorch).

TwoBasedIndexing.jl - Two-based indexing

TorchGA - Train PyTorch Models using the Genetic Algorithm with PyGAD

r-bigsimr - Simulate arbitrary multivariate distributions

mljar-supervised - Python package for AutoML on Tabular Data with Feature Engineering, Hyper-Parameters Tuning, Explanations and Automatic Documentation

python-bigsimr

nni - An open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning.

OffsetArrays.jl - Fortran-like arrays with arbitrary, zero or negative starting indices.

diffeqpy - Solving differential equations in Python using DifferentialEquations.jl and the SciML Scientific Machine Learning organization

StarWarsArrays.jl - Arrays indexed as the order of Star Wars movies

ModelingToolkitStandardLibrary.jl - A standard library of components to model the world and beyond