这个项目能做什么

PySR是一个开源的符号回归工具——符号回归是一种机器学习任务,旨在寻找优化给定目标的可解释符号表达式。它基于Julia库SymbolicRegression.jl构建,后者作为搜索引擎驱动PySR的功能。 通过pip或conda-forge安装非常简单。Julia依赖项在首次导入时自动安装。PySR还支持通过Docker和Apptainer进行容器化部署,适用于无root权限的集群环境。 主要接口遵循scikit-learn约定,通过`PySRRegressor`实现。用户可指定搜索参数,包括最大表达式大小、迭代次数、二元和一元运算符、自定义损失函数(以Julia语法编写)以及模型选择策略。搜索引擎在配置的迭代中执行数十万次变异和方程评估。 主要特性包括: - 以Julia语法定义自定义运算符(例如`inv(x) = 1/x`) - 自定义逐元素损失函数 - 去噪模式(`denoise=True`) - 特征选择(`select_k_features=N`) - 支持热启动以恢复中断的搜索 - 多种格式的方程导出:可调用lambda、SymPy、JAX(可微分)和PyTorch(可微分) - 嵌套运算符约束,用于控制表达式复杂度 - 通过Slurm集群管理器支持多节点集群 - 名人堂CSV和PKL序列化,用于保存模型状态 PySR还支持神经网络的符号蒸馏——将训练好的神经网络转换为解析方程,提供一种可解释的方式来理解深度学习模型。该方法在arXiv上的相关研究论文中有详细描述。