Sobre o projeto

PySR é uma ferramenta de código aberto para regressão simbólica — uma tarefa de aprendizado de máquina que encontra expressões simbólicas interpretáveis otimizando um objetivo dado. Construída junto com a biblioteca Julia SymbolicRegression.jl, ela serve como o motor de busca que impulsiona as capacidades do PySR. A instalação é direta via pip ou conda-forge. As dependências Julia são instaladas automaticamente na primeira importação. O PySR também suporta implantação em contêineres via Docker e Apptainer para ambientes de cluster sem acesso root. A interface principal segue as convenções do scikit-learn via `PySRRegressor`. Os usuários especificam parâmetros de busca, incluindo tamanho máximo da expressão, número de iterações, operadores binários e unários, funções de perda personalizadas (escritas em sintaxe Julia) e estratégias de seleção de modelo. O motor de busca realiza centenas de milhares de mutações e avaliações de equações ao longo das iterações configuradas. Os principais recursos incluem: - Operadores personalizados definidos em sintaxe Julia (ex.: `inv(x) = 1/x`) - Funções de perda elementwise personalizadas - Modo de remoção de ruído (`denoise=True`) - Seleção de características (`select_k_features=N`) - Suporte a warm start para retomar buscas interrompidas - Exportação de equações em múltiplos formatos: lambda chamável, SymPy, JAX (diferenciável) e PyTorch (diferenciável) - Restrições de operadores aninhados para controlar a complexidade da expressão - Suporte a cluster multi-nó via gerenciador de cluster Slurm - Serialização em CSV e PKL do hall da fama para estados de modelo salvos O PySR também suporta destilação simbólica de redes neurais — convertendo redes neurais treinadas em equações analíticas, fornecendo uma maneira interpretável de entender modelos de aprendizado profundo. Essa abordagem é descrita nos artigos de pesquisa associados disponíveis no arXiv.