diff --git a/Project.toml b/Project.toml index 34cde39d..c728ff5f 100755 --- a/Project.toml +++ b/Project.toml @@ -9,7 +9,6 @@ ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" ComputationalResources = "ed09eef8-17a6-5b46-8889-db040fac31e3" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" InferOpt = "4846b161-c94e-4150-8dac-c7ae193c601f" -LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MLJBase = "a7f614a8-145f-11e9-1d2a-a57a1082229d" MLJEnsembles = "50ed68f4-41fd-4504-931a-ed422449fee0" @@ -17,35 +16,35 @@ MLJFlux = "094fc8d1-fd35-5302-93ea-dabda2abf845" MLJLinearModels = "6ee0df7b-362f-4a72-a706-9e79364fb692" MLJModelInterface = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" -NaturalSort = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [compat] +Aqua = "0.8" CategoricalArrays = "0.10" ChainRules = "1.49.0" ComputationalResources = "0.3" Flux = "0.13, 0.14" InferOpt = "0.6.1" +LinearAlgebra = "1.7, 1.8, 1.9, 1.10" MLJBase = "0.20, 0.21, 1" MLJEnsembles = "0.3.3, 0.4" MLJFlux = "0.2.10, 0.3, 0.4" MLJLinearModels = "0.10.0" MLJModelInterface = "1" MLUtils = "0.4.2" -NaturalSort = "1" ProgressMeter = "1" +Random = "1.7, 1.8, 1.9, 1.10" StatsBase = "0.33, 0.34.0" Tables = "1" -cuDNN = "1" +Test = "1.7, 1.8, 1.9, 1.10" julia = "1.7, 1.8, 1.9, 1.10" [extras] +Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Test"] +test = ["Aqua", "Test"] diff --git a/README.md b/README.md index a8de98c4..23117476 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ -# ConformalPrediction + ![](dev/logo/wide_logo.png) -[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://juliatrustworthyai.github.io/ConformalPrediction.jl/stable/) [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://juliatrustworthyai.github.io/ConformalPrediction.jl/dev/) [![Build Status](https://github.com/juliatrustworthyai/ConformalPrediction.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/juliatrustworthyai/ConformalPrediction.jl/actions/workflows/CI.yml?query=branch%3Amain) [![Coverage](https://codecov.io/gh/juliatrustworthyai/ConformalPrediction.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/juliatrustworthyai/ConformalPrediction.jl) [![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle) [![License](https://img.shields.io/github/license/juliatrustworthyai/ConformalPrediction.jl)](LICENSE) [![Package Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/ConformalPrediction/.png)](https://pkgs.genieframework.com?packages=ConformalPrediction) +[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://juliatrustworthyai.github.io/ConformalPrediction.jl/stable/) [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://juliatrustworthyai.github.io/ConformalPrediction.jl/dev/) [![Build Status](https://github.com/juliatrustworthyai/ConformalPrediction.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/juliatrustworthyai/ConformalPrediction.jl/actions/workflows/CI.yml?query=branch%3Amain) [![Coverage](https://codecov.io/gh/juliatrustworthyai/ConformalPrediction.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/juliatrustworthyai/ConformalPrediction.jl) [![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle) [![License](https://img.shields.io/github/license/juliatrustworthyai/ConformalPrediction.jl)](LICENSE) [![Package Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/ConformalPrediction/.png)](https://pkgs.genieframework.com?packages=ConformalPrediction) [![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) + +# ConformalPrediction `ConformalPrediction.jl` is a package for Predictive Uncertainty Quantification (UQ) through Conformal Prediction (CP) in Julia. It is designed to work with supervised models trained in [MLJ](https://alan-turing-institute.github.io/MLJ.jl/dev/) (Blaom et al. 2020). Conformal Prediction is easy-to-understand, easy-to-use and model-agnostic and it works under minimal distributional assumptions. @@ -30,12 +32,14 @@ Don’t worry, we’re not about to deep-dive into methodology. But just to give > Conformal prediction (a.k.a. conformal inference) is a user-friendly paradigm for creating statistically rigorous uncertainty sets/intervals for the predictions of such models. Critically, the sets are valid in a distribution-free sense: they possess explicit, non-asymptotic guarantees even without distributional assumptions or model assumptions. > -> — Angelopoulos and Bates (2021) +> — Angelopoulos and Bates (2022) Intuitively, CP works under the premise of turning heuristic notions of uncertainty into rigorous uncertainty estimates through repeated sampling or the use of dedicated calibration data. ![Conformal Prediction in action: prediction intervals at varying coverage rates. As coverage grows, so does the width of the prediction interval.](https://raw.githubusercontent.com/pat-alt/pat-alt.github.io/main/blog/posts/conformal-regression/www/medium.gif) +Conformal Prediction in action: prediction intervals at varying coverage rates. As coverage grows, so does the width of the prediction interval. + The animation above is lifted from a small blog [post](https://www.paltmeyer.com/blog/posts/conformal-regression/) that introduces Conformal Prediction and this package in the context of regression. It shows how the prediction interval and the test points that it covers varies in size as the user-specified coverage rate changes. ## 🚩 Installation @@ -164,7 +168,7 @@ If after reading the usage example above you are just left with more questions a ### External Resources -- *A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification* by Angelopoulos and Bates (2021) ([pdf](https://arxiv.org/pdf/2107.07511.pdf)). +- *A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification* by Angelopoulos and Bates (2022) ([pdf](https://arxiv.org/pdf/2107.07511.pdf)). - *Predictive inference with the jackknife+* by Barber et al. (2021) ([pdf](https://projecteuclid.org/journals/annals-of-statistics/volume-49/issue-1/Predictive-inference-with-the-jackknife/10.1214/20-AOS1965.full)) - *Awesome Conformal Prediction* repository by Valery Manokhin ([repo](https://github.com/valeman/awesome-conformal-prediction)). - [Documentation](https://mapie.readthedocs.io/en/latest/index.html) for the Python package MAPIE. @@ -201,11 +205,14 @@ The package has been tested for the following supervised models offered by [MLJ] keys(tested_atomic_models[:regression]) ``` - KeySet for a Dict{Symbol, Expr} with 5 entries. Keys: + KeySet for a Dict{Symbol, Expr} with 8 entries. Keys: :ridge :lasso :evo_tree :nearest_neighbor + :decision_tree_regressor + :quantile + :random_forest_regressor :linear **Classification**: @@ -214,14 +221,16 @@ keys(tested_atomic_models[:regression]) keys(tested_atomic_models[:classification]) ``` - KeySet for a Dict{Symbol, Expr} with 3 entries. Keys: + KeySet for a Dict{Symbol, Expr} with 5 entries. Keys: :nearest_neighbor :evo_tree + :random_forest_classifier :logistic + :decision_tree_classifier ### Implemented Evaluation Metrics -To evaluate conformal predictors we are typically interested in correctness and adaptiveness. The former can be evaluated by looking at the empirical coverage rate, while the latter can be assessed through metrics that address the conditional coverage (Angelopoulos and Bates 2021). To this end, the following metrics have been implemented: +To evaluate conformal predictors we are typically interested in correctness and adaptiveness. The former can be evaluated by looking at the empirical coverage rate, while the latter can be assessed through metrics that address the conditional coverage (Angelopoulos and Bates 2022). To this end, the following metrics have been implemented: - `emp_coverage` (empirical coverage) - `ssc` (size-stratified coverage) @@ -240,14 +249,14 @@ Contributions are welcome! A good place to start is the [list](https://github.co ## 🙏 Thanks -To build this package I have read and re-read both Angelopoulos and Bates (2021) and Barber et al. (2021). The Awesome Conformal Prediction [repository](https://github.com/valeman/awesome-conformal-prediction) (Manokhin 2022) has also been a fantastic place to get started. Thanks also to [@aangelopoulos](https://github.com/aangelopoulos), [@valeman](https://github.com/valeman) and others for actively contributing to discussions on here. Quite a few people have also recently started using and contributing to the package for which I am very grateful. Finally, many thanks to Anthony Blaom ([@ablaom](https://github.com/ablaom)) for many helpful discussions about how to interface this package to `MLJ.jl`. +To build this package I have read and re-read both Angelopoulos and Bates (2022) and Barber et al. (2021). The Awesome Conformal Prediction [repository](https://github.com/valeman/awesome-conformal-prediction) (Manokhin 2022) has also been a fantastic place to get started. Thanks also to [@aangelopoulos](https://github.com/aangelopoulos), [@valeman](https://github.com/valeman) and others for actively contributing to discussions on here. Quite a few people have also recently started using and contributing to the package for which I am very grateful. Finally, many thanks to Anthony Blaom ([@ablaom](https://github.com/ablaom)) for many helpful discussions about how to interface this package to `MLJ.jl`. ## 🎓 References -Angelopoulos, Anastasios N, and Stephen Bates. 2021. “A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification.” *arXiv Preprint arXiv:2107.07511*. +Angelopoulos, Anastasios N., and Stephen Bates. 2022. “A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification.” . Barber, Rina Foygel, Emmanuel J. Candès, Aaditya Ramdas, and Ryan J. Tibshirani. 2021. “Predictive Inference with the Jackknife+.” *The Annals of Statistics* 49 (1): 486–507. . Blaom, Anthony D., Franz Kiraly, Thibaut Lienart, Yiannis Simillides, Diego Arenas, and Sebastian J. Vollmer. 2020. “MLJ: A Julia Package for Composable Machine Learning.” *Journal of Open Source Software* 5 (55): 2704. . -Manokhin, Valery. 2022. “Awesome Conformal Prediction.” Zenodo. . +Manokhin, Valery. 2022. “Awesome Conformal Prediction.” https://doi.org/10.5281/zenodo.6467205; Zenodo. . diff --git a/README.qmd b/README.qmd index 2f3e6b81..08e6edec 100755 --- a/README.qmd +++ b/README.qmd @@ -12,7 +12,7 @@ crossref: fig-prefix: Figure tbl-prefix: Table bibliography: https://raw.githubusercontent.com/pat-alt/bib/main/bib.bib -jupyter: julia-1.9 +jupyter: julia-1.10 --- ![](dev/logo/wide_logo.png) @@ -23,6 +23,6 @@ jupyter: julia-1.9 [![Coverage](https://codecov.io/gh/juliatrustworthyai/ConformalPrediction.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/juliatrustworthyai/ConformalPrediction.jl) [![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle) [![License](https://img.shields.io/github/license/juliatrustworthyai/ConformalPrediction.jl)](LICENSE) - [![Package Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/ConformalPrediction/)](https://pkgs.genieframework.com?packages=ConformalPrediction) + [![Package Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/ConformalPrediction/)](https://pkgs.genieframework.com?packages=ConformalPrediction) [![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) {{< include docs/src/_intro.qmd >}} \ No newline at end of file diff --git a/README_files/figure-commonmark/cell-12-output-1.svg b/README_files/figure-commonmark/cell-12-output-1.svg index 20cb47e5..4f303a55 100644 --- a/README_files/figure-commonmark/cell-12-output-1.svg +++ b/README_files/figure-commonmark/cell-12-output-1.svg @@ -5,7 +5,7 @@ - + @@ -28,22 +28,22 @@ - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + diff --git a/README_files/figure-commonmark/cell-7-output-1.svg b/README_files/figure-commonmark/cell-7-output-1.svg index b943f978..2c89ce09 100755 --- a/README_files/figure-commonmark/cell-7-output-1.svg +++ b/README_files/figure-commonmark/cell-7-output-1.svg @@ -5,7 +5,7 @@ - + @@ -120,6 +120,7 @@ + @@ -251,6 +252,7 @@ + diff --git a/src/ConformalPrediction.jl b/src/ConformalPrediction.jl index a4c4c00f..eafc8297 100755 --- a/src/ConformalPrediction.jl +++ b/src/ConformalPrediction.jl @@ -12,7 +12,4 @@ export soft_assignment include("evaluation/evaluation.jl") export emp_coverage, size_stratified_coverage, ssc, ineff -# Artifacts: -include("artifacts/core.jl") - end diff --git a/src/artifacts/core.jl b/src/artifacts/core.jl deleted file mode 100755 index e2e47325..00000000 --- a/src/artifacts/core.jl +++ /dev/null @@ -1,13 +0,0 @@ -using LazyArtifacts -using Serialization - -function artifact_folder() - jversion = "$(Int(VERSION.major)).$(Int(VERSION.minor))" - candidate_tag = "artifacts-$jversion" - path = try - joinpath(@artifact_str(candidate_tag), "$candidate_tag") - catch - @error "No artifacts found for Julia version $jversion." - end - return path -end diff --git a/src/conformal_models/ConformalTraining/ConformalTraining.jl b/src/conformal_models/ConformalTraining/ConformalTraining.jl index 04885fb5..014e5030 100644 --- a/src/conformal_models/ConformalTraining/ConformalTraining.jl +++ b/src/conformal_models/ConformalTraining/ConformalTraining.jl @@ -1,5 +1,7 @@ module ConformalTraining +export soft_assignment + using ConformalPrediction using Flux using MLJFlux diff --git a/src/conformal_models/ConformalTraining/inductive_classification.jl b/src/conformal_models/ConformalTraining/inductive_classification.jl index 4f4e72d1..82002a06 100755 --- a/src/conformal_models/ConformalTraining/inductive_classification.jl +++ b/src/conformal_models/ConformalTraining/inductive_classification.jl @@ -11,7 +11,7 @@ Overloads the `score` function for the `MLJFluxModel` type. """ function ConformalPrediction.score( conf_model::SimpleInductiveClassifier, - ::Type{<:MLJFluxModel}, + atomic::MLJFluxModel, fitresult, X, y::Union{Nothing,AbstractArray}=nothing, @@ -34,7 +34,7 @@ Overloads the `score` function for ensembles of `MLJFluxModel` types. """ function ConformalPrediction.score( conf_model::SimpleInductiveClassifier, - ::Type{<:EitherEnsembleModel{<:MLJFluxModel}}, + atomic::EitherEnsembleModel{<:MLJFluxModel}, fitresult, X, y::Union{Nothing,AbstractArray}=nothing, @@ -61,11 +61,7 @@ end Overloads the `score` function for the `MLJFluxModel` type. """ function score( - conf_model::AdaptiveInductiveClassifier, - ::Type{<:MLJFluxModel}, - fitresult, - X, - y::Union{Nothing,AbstractArray}=nothing, + conf_model::AdaptiveInductiveClassifier, atomic::MLJFluxModel, fitresult, X, y=nothing ) L = levels(fitresult[2]) X = reformat(X) @@ -93,10 +89,10 @@ Overloads the `score` function for ensembles of `MLJFluxModel` types. """ function score( conf_model::AdaptiveInductiveClassifier, - ::Type{<:EitherEnsembleModel{<:MLJFluxModel}}, + atomic::EitherEnsembleModel{<:MLJFluxModel}, fitresult, X, - y::Union{Nothing,AbstractArray}=nothing, + y=nothing, ) L = levels(fitresult.ensemble[1][2]) X = reformat(X) diff --git a/src/conformal_models/inductive_classification.jl b/src/conformal_models/inductive_classification.jl index 5bbbaf82..8cdb9e42 100755 --- a/src/conformal_models/inductive_classification.jl +++ b/src/conformal_models/inductive_classification.jl @@ -1,15 +1,10 @@ """ - score(conf_model::ConformalProbabilisticSet, fitresult, X, y::Union{Nothing,AbstractArray}=nothing) + score(conf_model::ConformalProbabilisticSet, fitresult, X, y=nothing) Generic score method for the [`ConformalProbabilisticSet`](@ref). It computes nonconformity scores using the heuristic function `h` and the softmax probabilities of the true class. Method is dispatched for different Conformal Probabilistic Sets and atomic models. """ -function score( - conf_model::ConformalProbabilisticSet, - fitresult, - X, - y::Union{Nothing,AbstractArray}=nothing, -) - return score(conf_model, typeof(conf_model.model), fitresult, X, y) +function score(conf_model::ConformalProbabilisticSet, fitresult, X, y=nothing) + return score(conf_model, conf_model.model, fitresult, X, y) end """ @@ -52,15 +47,9 @@ end Score method for the [`SimpleInductiveClassifier`](@ref) dispatched for any `<:Supervised` model. """ function score( - conf_model::SimpleInductiveClassifier, - ::Type{<:Supervised}, - fitresult, - X, - y::Union{Nothing,AbstractArray}=nothing, + conf_model::SimpleInductiveClassifier, atomic::Supervised, fitresult, X, y=nothing ) - p̂ = reformat_mlj_prediction( - MMI.predict(conf_model.model, fitresult, MMI.reformat(conf_model.model, X)...) - ) + p̂ = reformat_mlj_prediction(MMI.predict(atomic, fitresult, MMI.reformat(atomic, X)...)) L = p̂.decoder.classes probas = pdf(p̂, L) scores = @.(conf_model.heuristic(y, probas)) @@ -182,15 +171,9 @@ end Score method for the [`AdaptiveInductiveClassifier`](@ref) dispatched for any `<:Supervised` model. """ function score( - conf_model::AdaptiveInductiveClassifier, - ::Type{<:Supervised}, - fitresult, - X, - y::Union{Nothing,AbstractArray}=nothing, + conf_model::AdaptiveInductiveClassifier, atomic::Supervised, fitresult, X, y=nothing ) - p̂ = reformat_mlj_prediction( - MMI.predict(conf_model.model, fitresult, MMI.reformat(conf_model.model, X)...) - ) + p̂ = reformat_mlj_prediction(MMI.predict(atomic, fitresult, MMI.reformat(atomic, X)...)) L = p̂.decoder.classes probas = pdf(p̂, L) # compute probabilities for all classes scores = map(Base.Iterators.product(eachrow(probas), L)) do Z diff --git a/test/Manifest.toml b/test/Manifest.toml index 7086cb46..c60a35e8 100755 --- a/test/Manifest.toml +++ b/test/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.0" +julia_version = "1.10.2" manifest_format = "2.0" -project_hash = "e6ae9521ab7e945b4b8349a926a2b392791f1606" +project_hash = "1a70376b805e09e568c91d63e877237a377e4d20" [[deps.ANSIColoredPrinters]] git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" @@ -33,14 +33,20 @@ version = "0.4.5" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "0fb305e0253fd4e833d486914367a2ee2c2e78d0" +git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.0.1" +version = "4.0.3" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" +[[deps.Aqua]] +deps = ["Compat", "Pkg", "Test"] +git-tree-sha1 = "497d933e5998358c2626f782c99a8d4b90af2dd0" +uuid = "4c88cf16-eb10-579e-8560-4a9242c79595" +version = "0.8.4" + [[deps.ArgCheck]] git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" @@ -69,16 +75,18 @@ uuid = "68821587-b530-5797-8361-c406ea357684" version = "3.5.1+1" [[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.7.1" +version = "7.9.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" ArrayInterfaceTrackerExt = "Tracker" @@ -86,7 +94,9 @@ version = "7.7.1" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" @@ -146,9 +156,9 @@ version = "0.1.1" [[deps.BenchmarkTools]] deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] -git-tree-sha1 = "f1f03a9fa24271160ed7e73051fba3c1a759b53f" +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "1.4.0" +version = "1.5.0" [[deps.BitFlags]] git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" @@ -173,9 +183,9 @@ version = "0.5.0" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" +git-tree-sha1 = "a44910ceb69b0d44fe262dd451ab11ead3ed0be8" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.12" +version = "0.10.13" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics"] @@ -213,10 +223,10 @@ uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" version = "8.9.4+0" [[deps.Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.1+1" +version = "1.18.0+1" [[deps.Calculus]] deps = ["LinearAlgebra"] @@ -257,9 +267,9 @@ version = "1.63.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "892b245fdec1c511906671b6a5e1bafa38a727c1" +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.22.0" +version = "1.23.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -330,9 +340,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "d2c021fbdde94f6cdaa799639adfeeaa17fd67f5" +git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.13.0" +version = "4.14.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -347,7 +357,7 @@ version = "0.1.26" [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+1" +version = "1.1.0+0" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" @@ -367,9 +377,9 @@ version = "0.3.2" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.3.1" +version = "2.4.1" [[deps.ConformalPrediction]] deps = ["CategoricalArrays", "MLJBase", "MLJModelInterface", "NaturalSort", "Plots", "StatsBase"] @@ -379,9 +389,9 @@ version = "0.1.6" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.4" +version = "1.5.5" [deps.ConstructionBase.extensions] ConstructionBaseIntervalSetsExt = "IntervalSets" @@ -442,9 +452,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.17" +version = "0.18.18" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -522,10 +532,10 @@ uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" version = "0.9.3" [[deps.Documenter]] -deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "Test", "Unicode"] -git-tree-sha1 = "2613dbec8f4748273bbe30ba71fd5cb369966bac" +deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"] +git-tree-sha1 = "4a40af50e8b24333b9ec6892546d9ca5724228eb" uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" -version = "1.2.1" +version = "1.3.0" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] @@ -614,9 +624,9 @@ version = "0.1.1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.2" +version = "1.16.3" [[deps.FilePathsBase]] deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] @@ -641,9 +651,9 @@ weakdeps = ["PDMats", "SparseArrays", "Statistics"] [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.22.0" +version = "2.23.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -663,9 +673,9 @@ version = "0.8.4" [[deps.Flux]] deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] -git-tree-sha1 = "fd7b23aa8013a7528563d429f6eaf406f60364ed" +git-tree-sha1 = "502d0232ec6430d40b6e5b57637333f32192592e" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.12" +version = "0.14.14" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -685,11 +695,10 @@ git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" -[[deps.Formatting]] -deps = ["Printf"] -git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.2" +[[deps.Format]] +git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.6" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] @@ -715,9 +724,9 @@ version = "1.0.10+0" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.7" +version = "0.4.8" [[deps.Future]] deps = ["Random"] @@ -749,15 +758,15 @@ version = "0.25.0" [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" +git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.2" +version = "0.73.3" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.2+0" +version = "0.73.3+0" [[deps.GZip]] deps = ["Libdl", "Zlib_jll"] @@ -785,21 +794,21 @@ version = "0.21.0+0" [[deps.Git]] deps = ["Git_jll"] -git-tree-sha1 = "51764e6c2e84c37055e846c516e9015b4a291c7d" +git-tree-sha1 = "04eff47b1354d702c3a85e8ab23d539bb7d5957e" uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" -version = "1.3.0" +version = "1.3.1" [[deps.Git_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "b30c473c97fcc1e1e44fab8f3e88fd1b89c9e9d1" +git-tree-sha1 = "12945451c5d0e2d0dca0724c3a8d6448b46bbdf9" uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" -version = "2.43.0+0" +version = "2.44.0+1" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.76.5+0" +version = "2.80.0+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -843,9 +852,9 @@ version = "1.14.2+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "ac7b73d562b8f4287c3b67b4c66a5395a19c1ae8" +git-tree-sha1 = "995f762e0182ebc50548c434c171a5bb6635f8e4" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.2" +version = "1.10.4" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -991,9 +1000,9 @@ version = "1.14.0" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.1+0" +version = "3.0.2+0" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1009,9 +1018,9 @@ version = "0.2.4" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.16" +version = "0.9.18" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" @@ -1033,9 +1042,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "ddab4d40513bce53c8e3157825e245224f74fae7" +git-tree-sha1 = "7c6650580b4c3169d9905858160db895bff6d2e2" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.6.0" +version = "6.6.1" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1076,10 +1085,10 @@ uuid = "c52c1a26-f7c5-402b-80be-ba1e638ad478" version = "0.1.4" [[deps.Latexify]] -deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.1" +version = "0.16.2" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1167,10 +1176,10 @@ uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.17.0+0" [[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.35.0+0" +version = "2.39.3+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1179,10 +1188,10 @@ uuid = "89763e89-9b03-5906-acba-b20f662cd828" version = "4.5.1+1" [[deps.Libuuid_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.36.0+0" +version = "2.39.3+1" [[deps.LightGBM]] deps = ["Dates", "Libdl", "MLJModelInterface", "SparseArrays", "Statistics"] @@ -1261,9 +1270,9 @@ version = "0.7.14" [[deps.MLFlowClient]] deps = ["Dates", "FilePathsBase", "HTTP", "JSON", "ShowCases", "URIs", "UUIDs"] -git-tree-sha1 = "ea8a8dea5d252489d930763e5d6af4795930e0e2" +git-tree-sha1 = "049b39a208b052d020e18a0850ca9d228a11ef16" uuid = "64a0f543-368b-4a9a-827a-e71edb2a0b83" -version = "0.4.5" +version = "0.4.6" [[deps.MLJ]] deps = ["CategoricalArrays", "ComputationalResources", "Distributed", "Distributions", "LinearAlgebra", "MLJBase", "MLJEnsembles", "MLJFlow", "MLJIteration", "MLJModels", "MLJTuning", "OpenML", "Pkg", "ProgressMeter", "Random", "Reexport", "ScientificTypes", "Statistics", "StatsBase", "Tables"] @@ -1279,9 +1288,9 @@ version = "0.21.14" [[deps.MLJDecisionTreeInterface]] deps = ["CategoricalArrays", "DecisionTree", "MLJModelInterface", "Random", "Tables"] -git-tree-sha1 = "8059d088428cbe215ea0eb2199a58da2d806d446" +git-tree-sha1 = "1330eb4b8560bcc53d3878a2c9a08c75f99d530d" uuid = "c6f25543-311c-4c74-83dc-3ea6d1015661" -version = "0.4.0" +version = "0.4.1" [[deps.MLJEnsembles]] deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Distributed", "Distributions", "MLJBase", "MLJModelInterface", "ProgressMeter", "Random", "ScientificTypesBase", "StatsBase"] @@ -1321,9 +1330,9 @@ version = "1.9.5" [[deps.MLJModels]] deps = ["CategoricalArrays", "CategoricalDistributions", "Combinatorics", "Dates", "Distances", "Distributions", "InteractiveUtils", "LinearAlgebra", "MLJModelInterface", "Markdown", "OrderedCollections", "Parameters", "Pkg", "PrettyPrinting", "REPL", "Random", "RelocatableFolders", "ScientificTypes", "StatisticalTraits", "Statistics", "StatsBase", "Tables"] -git-tree-sha1 = "6868ebd0963fd3d6bfd6d5389dddd0219070120e" +git-tree-sha1 = "dd99a80f39cae8b112823d279dfa08ae872b4f3e" uuid = "d491faf4-2d78-11e9-2867-c94bc002c0b7" -version = "0.16.15" +version = "0.16.16" [[deps.MLJTuning]] deps = ["ComputationalResources", "Distributed", "Distributions", "LatinHypercubeSampling", "MLJBase", "ProgressMeter", "Random", "RecipesBase"] @@ -1389,9 +1398,9 @@ version = "0.1.2" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "e8b98c868029d007102dc5f98986c81f33b0ec37" +git-tree-sha1 = "679c1aec6934d322783bd15db4d18f898653be4f" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.26.0" +version = "1.27.0" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] @@ -1571,7 +1580,7 @@ version = "0.2.5" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+2" +version = "0.3.23+4" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -1592,9 +1601,9 @@ version = "5.0.2+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" +version = "1.4.2" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1714,15 +1723,15 @@ version = "3.1.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.0" +version = "1.4.1" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +git-tree-sha1 = "3c403c6590dd93b36752634115e20137e79ab4df" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.1" +version = "1.40.2" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1752,15 +1761,15 @@ version = "0.2.4" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.0" +version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.1" +version = "1.4.3" [[deps.PrettyPrint]] git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" @@ -1794,9 +1803,9 @@ version = "0.1.4" [[deps.ProgressMeter]] deps = ["Distributed", "Printf"] -git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" +git-tree-sha1 = "763a8ceb07833dd51bb9e3bbca372de32c0605ad" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.9.0" +version = "1.10.0" [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] @@ -2071,10 +2080,17 @@ uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.4" [[deps.StructArrays]] -deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.17" +version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" [[deps.StructTypes]] deps = ["Dates", "UUIDs"] @@ -2110,9 +2126,9 @@ version = "1.11.1" [[deps.TaijaPlotting]] deps = ["CategoricalArrays", "ConformalPrediction", "CounterfactualExplanations", "DataAPI", "Distributions", "Flux", "LaplaceRedux", "LinearAlgebra", "MLJBase", "MLUtils", "ManifoldLearning", "MultivariateStats", "NaturalSort", "NearestNeighborModels", "Plots"] -git-tree-sha1 = "a4ef915d36801127141afb726acd8b78be6abec7" +git-tree-sha1 = "2ba360254852212c516fe354207ba20f8a36f62c" uuid = "bd7198b4-c7d6-400c-9bab-9a24614b0240" -version = "1.0.6" +version = "1.0.7" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -2136,9 +2152,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +git-tree-sha1 = "a09c933bebed12501890d8e92946bbab6a1690f1" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.3" +version = "0.10.5" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2283,9 +2299,9 @@ version = "1.6.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.2+0" +version = "2.12.5+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2295,9 +2311,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ac88fb95ae6447c8dda6a5503f3bafd496ae8632" +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.4.6+0" +version = "5.6.1+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] @@ -2508,9 +2524,9 @@ version = "3.1.1+0" [[deps.libaec_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" +git-tree-sha1 = "46bf7be2917b59b761247be3f317ddf75e50e997" uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" -version = "1.0.6+1" +version = "1.1.2+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2555,9 +2571,9 @@ version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "873b4f805771d3e4bafe63af759a26ea8ca84d14" +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.42+0" +version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] diff --git a/test/Project.toml b/test/Project.toml index 47d516ec..9e9752f6 100755 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,4 +1,5 @@ [deps] +Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" CompatHelperLocal = "5224ae11-6099-4aaa-941d-3aab004bd678" DecisionTree = "7806a523-6efd-50cb-b5f6-3fa6f1930dbb" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" @@ -13,3 +14,6 @@ NearestNeighborModels = "636a865e-7cf4-491e-846c-de09b730eb36" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" TaijaPlotting = "bd7198b4-c7d6-400c-9bab-9a24614b0240" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[compat] +Aqua = "0.8" \ No newline at end of file diff --git a/test/aqua.jl b/test/aqua.jl new file mode 100644 index 00000000..fb759c03 --- /dev/null +++ b/test/aqua.jl @@ -0,0 +1,8 @@ +using Aqua + +@testset "Aqua.jl" begin + # Ambiguities needs to be tested seperately until the bug in Aqua package (https://github.com/JuliaTesting/Aqua.jl/issues/77) is fixed + Aqua.test_ambiguities([ConformalPrediction]; recursive=false, broken=false) + + Aqua.test_all(ConformalPrediction; ambiguities=false) +end diff --git a/test/runtests.jl b/test/runtests.jl index f482e53e..ce5fcfa4 100755 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -8,6 +8,11 @@ doctest(ConformalPrediction) # Test suite: @testset "ConformalPrediction.jl" begin + + # Quality assurance: + include("aqua.jl") + + # Unit tests: include("classification.jl") include("regression.jl") include("model_traits.jl")