Об этом проекте

PySR — это инструмент символьной регрессии с открытым исходным кодом — задачи машинного обучения, заключающейся в поиске интерпретируемых символьных выражений, оптимизирующих заданную целевую функцию. Он разработан совместно с библиотекой SymbolicRegression.jl для Julia, которая выступает поисковым движком, обеспечивающим возможности PySR. Установка выполняется просто через pip или conda-forge. Зависимости Julia устанавливаются автоматически при первом импорте. PySR также поддерживает контейнеризованное развёртывание через Docker и Apptainer для кластерных сред без root-доступа. Основной интерфейс следует соглашениям scikit-learn через `PySRRegressor`. Пользователи задают параметры поиска, включая максимальный размер выражения, количество итераций, бинарные и унарные операторы, пользовательские функции потерь (написанные на синтаксисе Julia) и стратегии выбора модели. Поисковый движок выполняет сотни тысяч мутаций и оценок уравнений в течение заданных итераций. Ключевые возможности: - Пользовательские операторы, определяемые на синтаксисе Julia (например, `inv(x) = 1/x`) - Пользовательские поэлементные функции потерь - Режим шумоподавления (`denoise=True`) - Отбор признаков (`select_k_features=N`) - Поддержка тёплого старта для возобновления прерванного поиска - Экспорт уравнений в нескольких форматах: вызываемая лямбда, SymPy, JAX (дифференцируемый) и PyTorch (дифференцируемый) - Вложенные ограничения операторов для управления сложностью выражений - Поддержка многоузловых кластеров через менеджер кластеров Slurm - Сериализация зала славы в форматах CSV и PKL для сохранения состояний модели PySR также поддерживает символьную дистилляцию нейронных сетей — преобразование обученных нейросетей в аналитические уравнения, что предоставляет интерпретируемый способ понимания моделей глубокого обучения. Этот подход описан в соответствующих научных статьях, доступных на arXiv.