wilsonrljr/sysidentpy

A Python Package For System Identification Using NARMAX Models

解决的问题

SysIdentPy 专为系统识别和时间序列预测而设计。它提供了一个框架,用于构建动态非线性模型,特别是 NARMAX 模型及其变体(如 NARX、NAR、NARMA、NFIR、ARMAX、ARX 和 ARMA),使用户能够从数据中对复杂动态系统进行建模。

工作原理

该库实现了多种模型结构选择和参数估计技术。它使用基函数(包括多项式、傅里叶和双线性)来定义模型的非线性。支持多种结构选择算法,如 FROLS、MetaMSS 和 AOLS,以及超过 15 种参数估计方法。此外,它还与 PyTorch 集成以支持神经 NARX 模型,并可封装 scikit-learn 和 CatBoost 等库中的通用估计器。

适用人群

适用于从事动态系统、时间序列预测和非线性系统识别的研究人员和工程师,可作为 Matlab 的 System Identification Toolbox 等工具的开源替代方案。

主要亮点

  • 多样的模型类型:支持广泛的 NARMAX 变体,包括 NARX、NAR 和 ARMAX。
  • 模型结构选择:包含 FROLS 和 Orthogonal Floating Search 等前沿算法。
  • 神经网络集成:可使用 PyTorch 构建自定义神经 NARX 架构。
  • 灵活的基函数:提供 8 种不同的基函数以自定义非线性模型。
  • 广泛的估计器支持:兼容 scikit-learn 和 CatBoost 估计器。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目