Sysidentpy

Latest version: v0.6.0

Safety actively analyzes 722460 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.6.0

CONTRIBUTORS

- wilsonrljr
- oliveira-mark

CHANGES

This release introduces significant improvements focused on improving code organization, readability, and compliance with PEP8 standards. It also includes a new foundational class for Error Reduction Ratio (ERR) based algorithms, expanded testing, and the discontinuation of Python 3.7 support.


- **New Features:**
- Introduced the `OFRBase` class, encapsulating common methods essential for ERR-based algorithms.
- Refactored the `FROLS` class to inherit from `OFRBase`, focusing it solely on the ERR algorithm.
- Implemented the Ultra Orthogonal Forward Regression (UOFR) algorithm, also inheriting from `OFRBase`.

- **API Changes:**
- **BREAKING CHANGE**: Fixed a typo in Bernstein Basis Function. Previously it was defined as Bersntein.
- **Refactoring and Modularization:**
- Extracted the `InformationMatrix` class from `narmax_base` into a new module: `utils.information_matrix`.
- Moved specific methods to newly created modules: `utils.lags` and `utils.simulation`, promoting better separation of concerns.
- Add deprecation message for RidgeRegression `solver` argument.

- **Code Quality Improvements:**
- Renamed variables and methods for better readability and PEP8 compliance, including changing uppercase variable names to lowercase.
- Updated imports to use new utility modules, reducing redundancy and improving maintainability.
- Removed unused imports and redundant parentheses, streamlining the codebase.
- Change python version in deploy action.

- **Testing Enhancements:**
- Added comprehensive tests for basis functions: Bernstein, Bilinear, Hermite (normalized), Laguerre, and Legendre.
- Introduced tests for utility methods, including `narmax_tools`, `save_load`, and the new simulation utilities.
- Increased test coverage to **92%**, ensuring robustness and reliability.

- **Validation and Error Handling:**
- Implemented a validation check for `train_percentage`, raising an error for values exceeding 100%.
- Adapted methods and tests following the removal of the `InformationMatrix` class to ensure consistency across the codebase.

- **Documentation Updates:**
- Launched a redesigned frontend page featuring a modern UI and improved responsiveness.
- Restructured multiple sections for better organization and clarity.
- Overhauled key guides, including `quick_start`, `developer_guide`, and `user_guide`.
- Added new examples, including the Lorenz System and Chaotic Map.
- Enhanced grammar and readability across documentation.
- Updated dependencies related to `mkdocs` for better performance and compatibility.
- Improved Google Analytics integration.
- Fixed broken links for the Nubank and Estatidados blogs, and refined link formatting in the book.
- Updated class docstrings to align with the latest changes.
- Standardized docstrings and method signatures to use lowercase variable names, following PEP8 guidelines.
- Revised contribution examples to reflect the latest `sysidentpy` version.
- Integrated book examples into traditional documentation, with direct links to the book section.
- Adjusted structure, titles, and links across various docs and examples for better navigation.
- Removed dataset files; datasets are now hosted in a dedicated repository, `sysidentpy-data`.
- Acknowledged JetBrains support and collaboration in the README and sponsor page.
- Fix edit uri when clicking to edit doc page in doc website.
- Now every example loads the data from `sysidentpy-data` repository.

- **Python Version Support Update:**
- **Support for Python 3.7 has been discontinued.** This aligns with the official end of support for Python 3.7 and resolves compatibility issues with newer dependencies.
- Certain parameter estimation algorithms, such as Bounded Variable Least Squares, require newer versions of SciPy that no longer support Python 3.7.
- Users can still run SysIdentPy on Python 3.7, but some features, including some parameter estimation functionalities, will be unavailable.

IMPACT

These changes improve the modularity, readability, and maintainability of the codebase. The introduction of the `OFRBase` class simplifies the implementation of ERR-based algorithms, facilitating future extensions. Comprehensive testing ensures the reliability of both new and existing functionalities.

TESTING

All new and existing tests were executed, achieving **92% test coverage**.

0.5.3

CONTRIBUTORS

- wilsonrljr

CHANGES

IMPORTANT! This update addresses a bug related to the Bilinear basis function for models with more the 2 inputs. This release keep providing crucial groundwork for the future development of SysIdentPy, making easier to add new features and improve the code, setting the stage for a robust and feature-complete 1.0.0 release in the future.

- **API Changes:**
- Fix Bilinear basis function issue for models with more than 2 inputs. This fix the `get_max_xlag` method in `basis_function_base` and also fix how `combination_xlag` is created.

0.5.2

CONTRIBUTORS

- wilsonrljr

CHANGES

IMPORTANT! This update addresses a critical bug related to the Polynomial and Bilinear basis function for models with more the 3 inputs. The issue raised due to the changes in basis function for v0.5.0, but has now been resolved. This release keep providing crucial groundwork for the future development of SysIdentPy, making easier to add new features and improve the code, setting the stage for a robust and feature-complete 1.0.0 release in the feature.

- **API Changes:**
- Fix Polynomial and Bilinear basis function issue for models with more than 3 inputs.

0.5.1

CONTRIBUTORS

- wilsonrljr

CHANGES

This update addresses a critical bug related to the unbiased estimator. The issue previously impacted all basis functions but has now been resolved. This release keep providing crucial groundwork for the future development of SysIdentPy, making easier to add new features and improve the code, setting the stage for a robust and feature-complete 1.0.0 release in the feature.

- **Documentation:**
- Remove unnecessary code when importing basis functions in many examples.

- **API Changes:**
- Fix unbiased estimator for every basis function.

0.5.0

CONTRIBUTORS

- wilsonrljr
- nataliakeles
- LeWerner42
- Suyash Gaikwad


CHANGES

This update introduces major new features and important bug fixes. This release provides crucial groundwork for the future development of SysIdentPy, making easier to add new features and improve the code, setting the stage for a robust and feature-complete 1.0.0 release in the feature.


- **New Features:**
- **MAJOR**: Add Bilinear Basis Function (thanks nataliakeles). Now the user can use Bilinear NARX models for forecasting.
- **MAJOR**: Add Legendre polynomial basis function. Now the user can use Legendre NARX models for forecasting.
- **MAJOR**: Add Hermite polynomial basis function. Now the user can use Hermite NARX models for forecasting.
**MAJOR**: Add Hermite Normalized polynomial basis function. Now the user can use Hermite Normalized NARX models for forecasting.
**MAJOR**: Add Laguerre polynomial basis function. Now the user can use Laguerre NARX models for forecasting.

- **Documentation:**
- Add basis function overview.
- Files related to v.3.* doc removed.
- Improved formatting in mathematical equations.
- Fixed typos and grammatical errors in README.md (thanks Suyash Gaikwad and LeWerner42)
- Minor additions and grammar fixes.
- Remove book assets from main repository. The assets were moved to sysidentpy-data repository to keep main repository cleaner and lighter.
- Fixed link in the book cover to ensure it correctly redirects to the book details. Also change x2_val to x_valid in examples of how to use in readme.
- Add Pix method as an alternative for brazilian sponsors.
- Fix code documentation for basis function (it was not showing up in the docs before).
- Remove `pip install` from the list of the dependencies needed in the chapter.

- **Datasets:**
- Datasets are now available in a separate repository.

- **API Changes:**
- add deprecated messages for bias and n in Bersntein basis function. Both parameters will be removed in v0.6.0. Use `include_bias` and `degree`, respectively, instead.
- Deploy-docs.yml: Change option to make a clean build of the documentation.
- Deploy-docs.yml: Change python version to deploy docs.
- Support for Python 3.13 depending on the release of the Pytorch 2.6. Every method in sysidentpy works in python 3.13 excluding neural narx.
- Update mkdocstrings dependency version
- Change Polynomial check from class name to isinstance method in every class.
- Remove support for torch==2.4.0 due to pip error in pytorch side. I'll check if it was solved before allow newer versions of pytorch.
- Make "main" the new default branch. Master branch removed.
- Change actions from master to main branch.
- Split basis function classes into multiples files (one for each basis).
- Fix redundant bias check on bersntein basis.
- Fix docstring math notation in basis functions docstring.
- Remove requirements.txt file.
- Extensive code refactoring, including type hint improvements, docstring enhancements, removal of unused code, and other behind-the-scenes changes to support new features.
- Add model_type in basis function base fit and predict method.
- Change variable name from `combinations` to `combination_list` to avoid any issue with itertools `combination` method in case I want to use it in the future.
- Remove requirements.txt file.

0.4.0

CONTRIBUTORS

- wilsonrljr

CHANGES

This update introduces several major features and changes, including some breaking changes. There is a guide to help you update your code to the new version. Depending on your model definition, you might not need to change anything. I decided to go directly to version v0.4.0 instead of providing incremental updates (0.3.5, 0.3.6, etc.) because the breaking changes are easy to fix and the new features are highly beneficial. This release provides crucial groundwork for the future development of SysIdentPy, making easier to add new features and improve the code, setting the stage for a robust and feature-complete 1.0.0 release in the feature.


- **New Features:**
- **MAJOR**: NonNegative Least Squares algorithm for parameter estimation.
- **MAJOR**: Bounded Variables Least Squares algorithm for parameter estimation.
- **MAJOR**: Least Squares Minimal Residual algorithm for parameter estimation.
- **MAJOR**: Error Reduction Ratio algorithm enhancement for FROLS model structure selection. Users can now set an `err_tol` value to stop the algorithm when the sum of the ERR values reaches this threshold, offering a faster alternative to Information Criteria algorithms. A new example is available in the documentation.
- **MAJOR**: New Bernstein basis function available, allowing users to choose between Polynomial, Fourier, and Bernstein.
- **MAJOR**: v0.1 of the companion book "Nonlinear System Identification: Theory and Practice With SysIdentPy." This open-source book serves as robust documentation for the SysIdentPy package and a friendly introduction to Nonlinear System Identification and Timeseries Forecasting. There are case studies in the book that were not included in the documentation at the time of the update release. The book will always feature more in-depth studies and will be updated regularly with additional case studies.

- **Documentation:**
- All examples updated to reflect changes in v0.4.0.
- Added guide on defining a custom parameter estimation method and integrating it with SysIdentPy.
- Documentation moved to the `gh-pages` branch.
- Defined a GitHub Action to automatically build the docs when changes are pushed to the main branch.
- Removal of unused code in general

- **Datasets:**
- Datasets are now available in a separate repository.

- **API Changes:**
- **BREAKING CHANGE**: Parameter estimation method must now be imported and passed to the model definition, replacing the previous string method. For example, use `from sysidentpy.parameter_estimation import LeastSquares` instead of `"least_squares"`. This change enhances code flexibility, organization, readability, and facilitates easier integration of custom methods. A specific doc page is available to guide migration from v0.3.4 to v0.4.0.
- **BREAKING CHANGE**: The `fit` method in MetaMSS now requires only `X` and `y` values, omitting the need to pass `fit(X=, y=, X_test=, y_test=)`.
- Introduced `test_size` hyperparameter to set the proportion of training data used in the fitting process.
- Added support for Python 3.12.
- Extensive code refactoring, including type hint improvements, docstring enhancements, removal of unused code, and other behind-the-scenes changes to support new features.

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.