Changelog

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

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.