All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Badge to README to show code coverage percentage.
- Support for Python 3.12.
- Additional data classes
coreax.data.Data
andcoreax.data.SupervisedData
that draw distinction between supervised and unsupervised datasets, and handle weighted data.
- Wording improvements in README.
- Documentation now builds without warnings.
- GitHub workflow runs automatically after Pre-commit autoupdate.
coreax.kernel.Kernel.length_scale
andcoreax.kernel.Kernel.output_scale
are treated as dynamic elements of the kernel pytree.
- Documentation has been rearranged.
- Renamed
coreax.weights.MMD
tocoreax.weights.MMDWeightsOptimiser
and added deprecation warning. - Renamed
coreax.weights.SBQ
tocoreax.weights.SBQWeightsOptimiser
and added deprecation warning. requirements-*.txt
will no longer be updated frequently, thereby providing stable versions.- Single requirements files covering all supported Python versions.
- All references to
kernel_matrix_row_{sum,mean}
have been replaced withGramian row-mean
.
- Bash script to run integration tests has been removed.
pytest tests/integration
should now work as expected. - Tests for
coreax.kernels.Kernel.{calculate, update}_kernel_matrix_row_sum
. coreax.util.KernelComputeType
; useCallable[[ArrayLike, ArrayLike], Array]
instead.coreax.kernels.Kernel.calculate_kernel_matrix_row_{sum,mean}
; usecoreax.kernels.Kernel.gramian_row_mean
.coreax.kernels.Kernel.updated_kernel_matrix_row_sum
; usecoreax.kernels.Kernel.gramian_row_mean
if possible.
- All uses of
coreax.weights.MMD
should be replaced withcoreax.weights.MMDWeightsOptimiser
. - All uses of
coreax.weights.SBQ
should be replaced withcoreax.weights.SBQWeightsOptimiser
.
0.1.0 - 2024-02-16
- Base Coreax package using Object-Oriented Programming incorporating:
- coreset methods: kernel herding, random sample
- reduction strategies: size reduce, map reduce
- kernels: squared exponential, Laplacian, PCIMQ, Stein
- refinement: regular, reverse, random
- metrics: MMD
- approximations of kernel matrix row sum mean: random, ANNchor, Nystrom
- weights optimisers: SBQ, MMD
- score matching: sliced score matching, kernel density estimation
- I/O: array data not requiring any preprocessing
- Near-complete unit test coverage.
- Example scripts for coreset generation, which may be called as integration tests.
- Bash script to run integration tests in sequence to avoid Jax errors.
- Detailed documentation for the Coreax package published to Read the Docs.
- README.md including an overview of what coresets are, setup instructions, a how-to guide, example applications and an overview of features coming soon.
- Support for Python 3.9-3.11.
- Project configuration and dependencies through pyproject.toml.
- Requirements files providing a pinned set of dependencies that are known to work for each supported Python version.
- Mark Coreax as typed.
- This changelog to make it easier for users and contributors to see precisely what notable changes have been made between each release of the project.
- FAQ.md to address any commonly asked questions.
- Contributor guidelines, code of conduct, license and security policy.
- Git configuration.
- GitHub Actions to run unit tests on Windows, macOS and Ubuntu for supported Python versions.
- Pre-commit checks to run the following, also checked by GitHub Actions:
- black
- isort
- pylint
- cspell spell check with custom dictionaries for library names, people and miscellaneous
- pyroma
- pydocstyle
- assorted file format and encoding checks
- Look-before-you-leap validation of all input to public functions