Skip to content

Commit

Permalink
Merge pull request #157 from wilsonrljr/doc/changelog_update
Browse files Browse the repository at this point in the history
Doc/changelog update
  • Loading branch information
wilsonrljr authored Jan 24, 2025
2 parents 85d475f + 9124677 commit 5d97ac3
Show file tree
Hide file tree
Showing 7 changed files with 352 additions and 9 deletions.
29 changes: 28 additions & 1 deletion .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,34 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest pytest-cov scikit-learn black>=23.3.0 isort>=5.0.6
pip install ."[dev, all]"
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest
build_3_7:
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ["3.7"]

steps:
- uses: actions/checkout@v4
Expand Down
18 changes: 11 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,21 @@ This update introduces major features and changes. There is a guide to help you
- **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**: 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.
- **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.
- Fix cover book link in readme. Also change x2_val to x_valid in examples of how to use in readme.
- 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.
Expand All @@ -40,7 +41,7 @@ This update introduces major features and changes. There is a guide to help you
- 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.
- Added support for Python 3.13.
- 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.
Expand All @@ -51,6 +52,9 @@ This update introduces major features and changes. There is a guide to help you
- 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.


## v0.4.0
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ For more details, check our [installation guide](https://sysidentpy.org/landing-
|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| NARMAX philosophy | You can build variations of NARMAX models like NARX, NAR, NARMA, NFIR, ARMA, ARX, AR, and others. |
| Model Structure Selection | Easy-to-use methods to select the best terms to build your models, including FROLS and MetaMSS and several combinations with parameter estimation techniques to select the model terms. |
| Basis Function | You can use different basis functions to build your models. You can set linear and nonlinear basis functions and ensemble them to get custom NARMAX models. |
| Basis Function | You can use up to 8 different basis functions to build your models. You can set linear and nonlinear basis functions and ensemble them to get custom NARMAX models. |
| Parameter Estimation | More than 15 methods to estimate the model parameters and test different structure selection scenarios. |
| Multiobjective Parameter Estimation | You can use affine information to estimate the model parameters minimizing different objective functions. |
| Model Simulation | You can reproduce results from papers easily with SimulateNARMAX class. Moreover, you can test published models with different parameter estimation methods and compare the performance. |
Expand Down
56 changes: 56 additions & 0 deletions docs/changelog/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,62 @@ template: overrides/main.html

# Changes in SysIdentPy

## v0.5.0

### CONTRIBUTORS

- wilsonrljr
- nataliakeles
- LeWerner42
- Suyash Gaikwad


### CHANGES

This update introduces major features and 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.5.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**: 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.

## v0.4.0

### CONTRIBUTORS
Expand Down
File renamed without changes.
255 changes: 255 additions & 0 deletions examples/basis_functions.ipynb

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ nav:
- defining-lags: examples/defining_lags.ipynb
- miso: examples/multiple_inputs_example.ipynb
- parameter-estimation: examples/parameter_estimation.ipynb
- basis-function: exampples/basis_function.ipynb
- multiobjective-parameter-estimation: examples/multiobjective_parameter_estimation.ipynb
- els: examples/extended_least_squares.ipynb
- n-steps-prediction: examples/n_steps_ahead_prediction.ipynb
Expand Down

0 comments on commit 5d97ac3

Please sign in to comment.