概览
SysIdentPy 是一个 Python 系统辨识工具包,可根据时间序列数据构建非线性动态模型。其核心框架是 NARMAX,包含 NARX、NAR、NFIR、ARX 和 ARMA 等变体。它提供的是建模工作流,而非预训练预测器:用户可针对自己的数据选择滞后设置、基函数、模型选择方法和估计器。该软件包基于 NumPy 构建,声明的依赖项还包括 SciPy 和 Matplotlib。
所提供的示例将训练输入和输出数组传入模型拟合,再使用验证数组生成预测。一个多项式 NARX 示例结合了 FROLS 结构选择和最小二乘估计,并报告所选回归项、估计参数和误差降低比。其他演示路径则在 NARX 配置中使用自定义 PyTorch 神经网络或 CatBoost 估计器。预测图、相对平方误差平方根以及残差相关性工具可用于评估拟合模型。
除拟合外,SysIdentPy 还提供 SimulateNARMAX,用于研究指定模型,并支持利用仿射信息进行多目标参数估计。这些功能使其适用于评估动态过程模型和非线性预测方法,但所提供的示例并未证明它适用于任何特定化学过程或实际部署。数组 API 分发明确属于实验性功能,且需选择启用:非 NumPy 后端的一步预测可以保持在原生后端执行,而顺序预测目前会先回退到 CPU 上的 NumPy,再将结果转换回来。神经网络路径需要 PyTorch,而软件包元数据将其列为可选依赖项。
主要功能
- 构建 NARMAX 系列模型,包括 NARX、NAR、NARMA、NFIR、ARMA 和 ARX,并支持配置输入和输出滞后。
- 使用 FROLS、MetaMSS、AOLS、UOFR、Entropic Regression 和 Orthogonal Floating Search 等方法选择模型项。
- 提供线性和非线性基函数、超过 15 种参数估计方法,以及利用仿射信息进行的多目标估计。
- 支持自定义 PyTorch 神经 NARX 架构和兼容的外部估计器,并提供 CatBoost NARX 示例。
- 提供 SimulateNARMAX、预测指标、模型项显示、预测图和残差相关性工具。
- 为受支持的选择算法、仿真、指标、实用工具以及 Polynomial、Fourier 和 Bilinear 基函数提供实验性的数组 API 分发,并记录了顺序预测回退行为。
使用场景
- 评估用途:对记录的过程测量数据拟合非线性输入–输出模型,并评估其预测和残差相关性,再考虑将其用于过程控制。
- 评估用途:在相同的训练和验证时间序列上比较多项式 NARX、神经 NARX 和基于外部估计器的 NARX 方法。
- 评估用途:使用 SimulateNARMAX 研究已发表的 NARMAX 模型,并比较不同的参数估计方法。
使用方式
阅读安装指南,并查看所提供的软件包元数据,了解 Python 和依赖项要求。评估神经 NARX 时,请包含 PyTorch;外部估计器示例可能需要其他软件包。
按照快速入门指南了解输入和输出数组、滞后设置以及训练/验证工作流。在将其用于过程测量数据之前,先从所提供的模拟数据示例入手。
使用仓库示例选择建模路径。多项式示例结合了 FROLS、Polynomial 和 LeastSquares;其他示例则展示了 NARXNN 和基于 CatBoost 的 NARX。
使用训练数据拟合模型,并在验证数据上进行预测。查看可用的所选项和参数,然后使用文档所述的工具评估预测图、相对平方误差平方根和残差相关性。
如果要评估其他数组后端,请先参阅数组 API 分发指南。区分原生后端执行的一步预测与使用文档所述 NumPy/CPU 回退的顺序预测。