Changelog
=========
Unreleased
----------
- Python package
- R package
- abess can be used in mlr3extralearners, a package like scikit-learn. Please see `mlr3extralearners `__ for usage.
Version 0.4.7
-------------
- R package
- Python package
- Support no-intercept model for most regressors in ``abess.linear`` with argument ``fit_intercept=False``. We assume that the data has been centered for these models.
- Use `CMake `__ on compiling to increase scalability.
- C++
- Support limiting beta into a range by clipping method. One application is to perform non-negative fitting.
- Support AUC criterion for Logistic and Multinomial Regression.
Version 0.4.6
-------------
- R package
- Python package
- Support ``score`` function for all GLM estimators.
- Rearrange some arguments to improve legibility.
Please check `here `__ for the latest API.
- Better docstring, e.g. move important arguments to the front.
- Combine ``metrics.py`` and ``functions.py``.
- C++
- Support the base model for GLM. The Sparse GLM model can be implemented much easilier.
- Re-write logistic, poisson and gamma regression on the basis of GLM base model.
Versions 0.4.2 -- 0.4.5
-----------------------
- R package
- Change the structure of R package such that the parameter check can be reused by different methods.
As a by-production, code coverage for R package is impressively improved.
- Support ordinal regression
- Update README.md to synchronize with the layout change of abess official website.
- Python package
- Fix bugs in sparse principal component analysis
- Support ordinal regression
- Support predicting survival function in ``CoxPHSurvivalAnalysis()``
- Modify python package to adapt to the criteria of `conda-forge `__ and ``abess`` is going to appear on conda-forge.
- Spectra library is no long appear in ``python/include`` directory
- Improve pytest by suppress unnecessary come from ``scikit-learn`` and the warning about API-name change.
Moreover, some test will be skipped if some dependencies are missing.
- Add `estimator check `__
from ``scikit-learn`` into pytest
- Refine the configuration in ``setup.py`` to facilitate the source code installation
- Support ``get_params`` and ``set_params`` methods for each model
- C++
- Support ordinal regression
- Fix bugs for multiple-regressors' API
- Add more comments to improve readability, mainly in ``Algorithm.h``, ``utilities.h``, and ``workflow.h``
- Project development
- Test the package automatic submission. (It explains why the version number is quickly shifted.)
- Python maintainer changes from `Kangkang Jiang `__ to
`Junhao Huang `__!
Version 0.4.1
-------------
- R package
- Support user-specified initial active set.
- Python package
- The API name shifts from ``abessXXX`` to ``xxxRegression`` and from ``abessXXX`` to ``SparsePCA``
- Improve the PEP8 criteria and ``scikit-learn`` criterion
- The interface between python and cpp changes from `swig `__ to `pybind11 `__.
- On Windows, the recommended C++ compiler for ``abess`` package installation shifts from Mingw to Microsoft Visual Studio because it is suggested that `MinGW works with all Python versions up to 3.4 `__.
- Using `cibuildwheel `__ and github action to build and test `wheel` files automatically
- Fix bugs in sparse principal component analysis
- Project development
- Documentation
- Add instruction for Gamma regression.
- Update the usage of ``support_size`` in PCA.
- Use Sphinx-Gallery for website layout, and update the layout of the ``Tutorial`` section.
Version 0.4.0
-------------
It is the fourth stable release for ``abess``. More features and
concrete algorithms are supported now and the main Cpp code has been
refactored to improve scalability.
- Cpp
- New features:
- Support user-specified cross validation division.
- Support user-specified initial active set.
- Support flexible support size for sequentially best subset
selection for principal component analysis (PCA).
- New best subset selection tasks:
- Generalized linear model when the link function is gamma
distribution.
- Robust principal component analysis (RPCA).
- Performance improvement:
- Bug fixed
- Python
- New best subset selection features and tasks implemented in Cpp
are wrapped in Python functions.
- More comprehensive test files.
- A new release in Pypi.
- R package
- New best subset selection features and tasks implemented in Cpp
are wrapped in R functions.
- A new release in CRAN.
- Project development
- Source code
- Refactoring the Cpp source code to improve its readability and
scalability. Please check `Code
Developing `__
section for more details.
- Combine all parameters (e.g. support_size and lambda) in one
list to improve expandability.
- Move the core code ``src`` directory to the root of repository.
- Documentation
- Add instruction for robust principal component analysis in
`Tutorial `__.
- Add instruction for user-specified cross validation division in
`Advanced
Features `__.
- Update development guideline according to cpp source code
change in `Code
Developing `__.
- Adding more details and giving more links related to core
functions.
- Code coverage
- Add more test suites to improve coverage and stability
- Code format
- Code format is checked by
`CodeFactor `__.
For more details, please check `Code
Format `__.
Version 0.3.0
-------------
It is the third stable release for ``abess``. This version improve the
runtime performance, the clarity of project’s documentation, and add
helpful continuous integration.
- Cpp
- New features:
- Support important searching to significantly improve
computational efficiency when dimensionality is large.
- Performance improvement:
- Update the version of dependencies: from Spectra 0.9.0 to 1.0.0
- Bug fixed
- R package
- Support important searching for generalized linear model in
``abess``
- A new release in CRAN.
- Python package
- Remove useless parameter to improve clarity.
- Support important searching for generalized linear model
``abessLm``, ``abessLogistic``, ``abessPoisson``, ``abessCox``,
``abessMlm``, ``abessMultinomial``
- A new release in Pypi.
- Project development
- Code coverage
- Check line covering rate for both Python and R. And the
coverage rates are summarized and report.
- Add more test suites to improve coverage and stability
- Documentation
- Add docs2search for the R package’s website
- Add a logo for the project
- Improve documentation by adding two tutorial sections:
``detail of algorithm`` and ``power of abess``.
- Improve code coverage
- Continuous integration
- Check the installation in Windows, Mac, and Linux
- Automatically generate the ``.whl`` files and publish the
Python package into Pypi when tagging the project in github.
Version 0.2.0
-------------
It is the second stable release for ``abess``. This version includes
multiple several generic features, and optimize memory usage when input
data is a sparse matrix. We also significantly enhancements to the
project’ documentation.
- Cpp
- New generic best subset features:
- The selection of group-structured best subset selection;
- Ridge-regularized penalty for parameter as a generic component.
- New best subset selection tasks:
- principal component analysis
- Performance improvement:
- Support sparse matrix as input
- Support golden section search for optimal support size. It is
much faster than sequentially searching strategy.
- The logic behind cross validation is optimized to gain speed
improvement
- Covariance update
- Bug fixed
- R package
- New best subset selection features and tasks implemented in Cpp
are wrapped in R functions.
- ``abesspca`` supports best subset selection for the first loading
vector in principal component analysis. A iterative algorithm
supports multiple loading vectors.
- Generic S3 function for ``abesspca``.
- Both ``abess`` and ``abesspca`` supports sparse matrix input
(inherit from class “sparseMatrix” as in package Matrix).
- Upload to CRAN.
- Python package
- New best subset selection features and tasks implemented in Cpp
are wrapped in Python functions.
- *abessPCA* supports best subset selection for the first loading
vector in principal component analysis. A iterative algorithm
supports multiple loading vectors.
- Support integration with ``scikit-learn``. It is compatible with
model evaluation and selection module with ``scikit-learn``.
- Initial Upload to Pypi.
- Project development
- Documentation
- A more clear project website layout.
- Add an instruction for
- Add tutorials to show simple use-cases and non-trival examples
of typical use-cases of the software.
- Link to R-package website.
- Add an instruction to help package development.
- Code coverage for line covering rate for Python.
- Continuous integration:
- Change toolbox from Travis CI to Github-Action.
- Auto deploy code coverage result to codecov.
Version 0.1.0
-------------
We’re happy to announce the first major stable version of ``abess``.
This version includes multiple new algorithms and features. Here are
some highlights of the big updates.
- Cpp
- New generic best subset features:
- generic splicing technique
- nuisance selection
- New best subset selection tasks:
- linear regression
- logistic regression
- poisson regression
- cox proportional hazard regression
- multi-gaussian regression
- multi-nominal regression.
- Cross validation and information criterion to select the optimal
support size
- Performance improvement:
- Support OPENMP for the parallelism when performing cross
validation
- Warm start initialization
- Create a List object to: 1. facilitate transfer the data object
from Cpp to Python; 2. use the maximum compatible code for python
and R
- R package
- All best subset selection features and tasks implemented in Cpp
are wrapped in a R function ``abess``.
- Unified API for cross validation and information criterion to
select the optimal support size.
- Support generic S3 functions like ``coef`` and ``plot`` in R.
- A short vignettes for demonstrating the usage of package.
- Support formula interface.
- Support convenient function for generating synthetic dataset.
- Initial upload to CRAN.
- Python
- All best subset selection features implemented in Cpp are wrapped
in a Python according to tasks. For instance, *abessLm* supports
best subset selection for the linear model.
- Write the Python class on the basis of ``scikit-learn`` package.
The usage of the python package is the same as the common module
in ``scikit-learn``.
- Support convenient function for generating synthetic dataset in
Python.
- Project developing
- Build R package website via the ``pkgdown`` package.
- Build a documentation website on based the Python package via the
``sphnix`` package.
- The website is continuous integrated via Travis CI. The content
will automatically change whether a Travis CI is triggered.
- Complete testing for R functions in package.