Sysidentpy

Latest version: v0.4.1

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

Scan your dependencies

Page 1 of 3

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.

0.3.4

CONTRIBUTORS

- wilsonrljr
- dj-gauthier
- mtsousa

CHANGES

- **New Features:**
- **MAJOR**: Ridge Regression Parameter Estimation:
- Introducing Ridge algorithm for model parameter estimation (Issue 104). Set `estimator="ridge_regression"` and control regularization with the `alpha` parameter. Special thanks to dj-gauthier and mtsousa for their contribution. Users are encouraged to visit https://www.researchgate.net/publication/380429918_Controlling_chaos_using_edge_computing_hardware to explore how dj-gauthier used SysIdentPy in his research.

- **API Changes:**
- Improved `plotting.py` code with type hints and new options for plotting results.
- Refactored methods to resolve future warnings from numpy.
- Code refactoring following PEP8 guidelines.
- Set "default" as the default style for plotting to avoid errors in new versions of matplotlib.

- **Datasets:**
- Added `buck_id.csv` and `buck_valid.csv` datasets to the SysIdentPy repository.

- **Documentation:**
- Add NFIR example (Issue 103). The notebook show how to build models without past output regressors (using only input regressors).
- Enhanced usage example for MetaMSS.
- Continued adding type hints to methods.
- Improved docstrings throughout the codebase.
- Minor additions and grammar fixes in documentation.
- dj-gauthier provided valuable suggestions for enhancing the documentation, which are currently undergoing refinement and will soon be accessible.

- **Development Tools:**
- Added pre-commit hooks to the repository.
- Enhanced `pyproject.toml` to assist contributors in setting up their own environment.

0.3.3

CONTRIBUTORS

- wilsonrljr
- GabrielBuenoLeandro
- samirmartins

CHANGES

- The update **v0.3.3** has been released with additional features, API changes and fixes.

- MAJOR: Multiobjective Framework: Affine Information Least Squares Algorithm (AILS)
- Now you can use AILS to estimate parameters of NARMAX models (and variants) using a multiobjective approach.
- AILS can be accessed using `from sysidentpy.multiobjective_parameter_estimation import AILS`
- See the docs for a more in depth explanation of how to use AILS.
- This feature is related to Issue 101. This work is the result of an undergraduate research conducted by Gabriel Bueno Leandro under the supervision of Samir Milani Martins and Wilson Rocha Lacerda Junior.
- Several new methods were implemented to get the new feature and you can check all of it in sysidentpy -> multiobjective_parameter_estimation.

- API Change: `regressor_code` variable was renamed as `enconding` to avoid using the same name as the method in `narmax_tool` `regressor_code` method.

- DATASET: Added buck_id.csv and buck_valid.csv dataset to SysIdentPy repository.

- DOC: Add a Multiobjetive Parameter Optimization Notebook showing how to use the new AILS method

- DOC: Minor additions and grammar fixes.

0.3.2

CONTRIBUTORS

- wilsonrljr

CHANGES

- The update **v0.3.2** has been released with API changes and fixes.

- Major:
- Added Akaike Information Criteria corrected in FROLS. Now the user can use aicc as the information criteria to select the model order when using FROLS algorithm.

- FIX: Issue 114. Replace yhat with y in root relative squared error. Thanks miroder

- TESTS: Minor changes in tests by removing unnecessary data load.

- Remove unused code and comments.

- Docs: Minor changes in notebooks. Added AICc method in the information criteria example.

0.3.1

CONTRIBUTORS

- wilsonrljr

CHANGES

- The update **v0.3.1** has been released with API changes and fixes.

- API Change:
- MetaMSS was returning the max lag of the final model instead of the maximum lag related to the xlag and ylag. This is not wrong (its related to the issue 55), but this change will be made for all methods at the same time. In this respect, I'm reverted this to return the maximum lag of the xlag and ylag.

- API Change: Added build_matrix method in BaseMSS. This change improved overall code readability by rewriting if/elif/else clauses in every model structure selection algorithm.

- API Change: Added bic, aic, fpe, and lilc methods in FROLS. Now the method is selected by using a predefined dictionary with the available options. This change improved overall code readability by rewriting if/elif/else clauses in the FROLS algorithm.

- TESTS: Added tests for Neural NARX class. The issue with pytorch was fixed and now we have the tests for every model class.

- Remove unused code and comments.

0.3.0

CONTRIBUTORS

- wilsonrljr
- gamcorn
- Gabo-Tor

CHANGES

- The update **v0.3.0** has been released with additional features, API changes and fixes.

- MAJOR: Estimators support in AOLS
- Now you can use any SysIdentPy estimator in AOLS model structure selection.

- API Change:
- Refactored base class for model structure selection. A refactored base class for model structure selection has been introduced in SysIdentPy. This update aims to enhance the system identification process by preparing the package for new features that are currently in development, like multiobjective parameter estimation, new basis functions and more.

Several methods within the base class have undergone significant restructuring to improve their functionality and optimize their performance. This reorganization will facilitate the incorporation of advanced model selection techniques in the future, which will enable users to obtain dynamic models with robust dynamic and static performance.
- Avoid unnecessary inheritance in every MSS method and improve the readability with better structured classes.
- Rewritten methods to avoid code duplication.
- Improve overall code readability by rewriting if/elif/else clauses.

- Breaking Change: `X_train` and `y_train` were replaced respectively by `X` and `y` in `fit` method in MetaMSS model structure selection algorithm. `X_test` and `y_test` were replaced by `X` and `y` in `predict` method in MetaMSS.

- API Change: Added BaseBasisFunction class, an abstract base class for implementing basis functions.

- Enhancement: Added support for python 3.11.

- Future Deprecation Warning: The user will have to define the estimator and pass it to every model structure selection algorithm instead of using a string to define the Estimator. Currently the estimator is defined like "estimator='least_squares'". In version 0.4.0 the definition will be like "estimator=LeastSquares()"

- FIX: Issue 96. Fix issue with numpy 1.24.* version. Thanks for the contribution gamcorn.

- FIX: Issue 91. Fix r2_score metric issue with 2 dimensional arrays.

- FIX: Issue 90.

- FIX: Issue 88 .Fix one step ahead prediction error in SimulateNARMAX class (thanks for pointing out, Lalith).

- FIX: Fix error in selecting the correct regressors in AOLS.

- Fix: Fix n step ahead prediction method not returning all values of the defined steps-ahead value when passing only the initial condition.

- FIX: Fix Visible Deprecation Warning raised in get_max_lag method.

- FIX: Fix deprecation warning in Extended Least Squares Example

- DATASET: Added air passengers dataset to SysIdentPy repository.

- DATASET: Added San Francisco Hospital Load dataset to SysIdentPy repository.

- DATASET: Added San Francisco PV GHI dataset to SysIdentPy repository.

- DOC: Improved documentation in Setting Specif Lags page. Now we bring an example of how to set specific lags for MISO models.

- DOC: Minor additions and grammar fixes.

- DOC: Improve image visualization using mkdocs-glightbox.

- Update dev packages versions

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.