Welcome to the official repository for the experiments presented in the paper "An Empirical Bernstein Inequality for Dependent Data in Hilbert Spaces and Applications". This paper introduces novel empirical Bernstein inequalities for dependent random variables in Hilbert spaces and demonstrates their applications in various scenarios. For any questions or collaboration suggestions, please reach out to erfunmirzaei@gmail.com.
The paper includes three numerical experiments: Covariance Estimation Using Samples from Ornstein–Uhlenbeck Process, Noisy Ordered MNIST, and EBI-based Model Selection. The code for each experiment is organized into separate folders. To reproduce the results, follow these general steps: run simulation.py, then run result.py to analyze the results in the corresponding folder.
The OU_Est folder contains the code for this experiment.
cov_estimation.py: Functions for calculating bounds for covariance estimationcorr_est_cov_est.py: Functions for estimating the proxies of covariance introduced in the paperconfigs.yaml: Hyperparameter selectionutils.py: Plot functions and divisorsdata_pipeline.py: Functions for generating samples from the OU processsimulation.py: Running simulations and saving resultsresult.py: Plotting the final results
The Noisy_Ordered_MNIST folder contains the code for this experiment.
oracle.py: Oracle CNN for encoding MNIST imagestransfer_op.py: Fitting function for the transfer operator modelshparams_tuning.py: Tuning the hyperparameters of the Gaussian kernel and Tikhonov regularizationnormalized_corr_est_cov_est.py: Functions for estimating the normalized proxies of covariance introduced in the paperconfigs.yaml: Hyperparameter selectionutils.py: Plot functionsdata_pipeline.py: Functions for generating noisy and noise-free ordered MNIST imagessimulation.py: Running simulations and saving resultsresult.py: Plotting the final results
The EBI_Model_Selection folder contains the code for this experiment.
get_dataset.py: Functions for downloading the alanine dipeptide datasetcorr_est_cov_est.py: Functions for estimating the proxies of covariance introduced in the paperrisk_bound.py: Functions for computing the risk boundconfigs.yaml: Hyperparameter selectionutils.py: Plot functionsdata_pipeline.py: Functions for data processingsimulation.py: Running simulations and saving resultsresult.py: Plotting the final results
To set up the environment for running the experiments, install the required dependencies by running:
pip install -r requirements.txtAlternatively, manually install the dependencies listed below:
pip install Flask==2.0.2
pip install requests==2.26.0
pip install pandas==1.3.3
pip install numpy==1.21.2
pip install scikit-learn==0.24.2
pip install matplotlib==3.4.3
pip install ml_confs== 0.0.1Each experiment is organized into its own folder. Follow the instructions below to reproduce the results for each experiment.
Navigate to the OU_Est or Noisy_Ordered_MNIST or EBI_Model_Selection folder and run the following commands:
python simulation.py
python result.pyFor any questions or suggestions for collaboration, please reach out to erfunmirzaei@gmail.com.
Thank you for considering contributing to EBI4LDS! Here are some guidelines to help you get started:
- Fork the Repository: Create a personal fork of the project on GitHub.
- Clone Your Fork: Clone your forked repository to your local machine.
git clone https://github.com/your-username/EBI4LDS.git
- Create a Branch: Create a new branch for your changes.
git checkout -b my-feature-branch
- Make Changes: Make your changes to the codebase.
- Commit Changes: Commit your changes with a clear and concise commit message.
git commit -m "Add new feature" - Push Changes: Push your changes to your forked repository.
git push origin my-feature-branch
- Create a Pull Request: Open a pull request to the main repository with a description of your changes.
If you find any bugs or have suggestions, please open an issue on GitHub.
Thank you for your contributions!