Supplementary material for two of our publications. The supplement.pdf contains all plots we have generated for our ECML-PKDD paper.
@InProceedings{bunse2021certification,
author = {Mirko Bunse and Katharina Morik},
booktitle = {Europ. Conf. on Mach. Learn. and Knowledge Discovery in Databases (ECML-PKDD)},
title = {Certification of Model Robustness in Active Class Selection},
year = {2021},
note = {To appear},
publisher = {Springer}
}
@InProceedings{bunse2021active,
author = {Mirko Bunse and Katharina Morik},
title = {Active Class Selection with Uncertain Deployment Class Proportions},
booktitle = {Workshop on Interactive Adaptive Learning},
year = {2021},
note = {To appear},
publisher = {{CEUR} Workshop Proceedings}
}Preliminaries: You need to have julia and pdflatex installed. We conducted the experiments with Julia v1.6 and TexLive on Linux.
In a terminal,
- calling
make ecml21will generate a copy of thesupplement.pdfin theplot/directory in about 3 hours. - calling
make ial21will take about 2 hours to produce the plots of our IAL contribution. - calling
makewithout arguments will conduct the experiments of both papers. - calling
make -n <whatever>will show the steps taken without actually taking them (dry run).
Caution: The experiments will download the open FACT data set, which is about 5GB in size.
Troubleshooting: Sometimes the Manifest.toml file causes trouble; since the dependencies are already defined in the Project.toml, you should be able to safely delete the manifest file and try again without it.
You can alter the configurations in the conf/ directory, e.g. try different seeds, classifiers, or data sets. Calling make again will then conduct the experiments with the altered configuration.
More severe adaptations are possible through changing the code. To this end, the Julia modules in the src/ directory separate concerns in the following ways:
AcsCertificatesis the top-level module that nests all other modules.Certificatesimplements our proposals: certificates for active class selection and the data acquisition strategy that is based on these certificates.Datadownloads and reads the data and provides some data-related utility functions.Experimentstake configuration files as inputs and produce raw results, i.e. they write all evaluations of all trials to an output CSV file.Plotstake the raw results as inputs, aggregate them, and produce TEX files with code for plots.SigmaTestis a wrapper for an evaluation measure that is implemented at https://bitbucket.org/mbunse/sigma-test.
This project can become a dependency in any other Julia project. Certificates can then be created by simply calling the constructor Certificate(L, y_h, y; kwargs...) with a loss function L, predictions y_h, and the validation ground-truths y. The keyword arguments provide additional parameters like delta and class weights. Many decomposable loss functions are already available through the LossFunctions.jl package.
# let y_val be validation labels and y_h be corresponding predictions
using AcsCertificates, LossFunctions
c = Certificate(ZeroOneLoss(), y_h, y_val)
?Certificate # inspect the documentationIf you encounter any problem, please file a GitHub issue.
For the near future, we commit ourselves to writing thin wrappers for Python and the command line to make ACS certification easily accessible in other programming languages, as well.