# lionfish0/dp

Experimentation with Differential Privacy
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
1d Kung selecting hyperparameters.ipynb
Analyse DP results from AWS.ipynb
Building Histogram Class.ipynb
Census code.ipynb
Citibike experimentation.ipynb
Coregionalisation experiments.ipynb
Coregionalised Kung dataset.ipynb
Cross Validation.ipynb
Demonstrating dp4gp.ipynb
Explaining Vector Alternative.ipynb
Fix to DP method.ipynb
House price example.ipynb
Howell1.csv
Improved Bound Constraint differing across domain.ipynb
Inducing inputs and cloaking 1d.ipynb
Inducing inputs and cloaking 2d.ipynb
Nested Cross Validation.ipynb
Numerical Solution For Finding Langrange Multipliers-Corrected Gradient.ipynb
Paper Results 1d Kung dataset.ipynb
Paper results Citibike.ipynb
Paper results Houseprices.ipynb
Rotate between two n-dimensional matrices.ipynb
See AWS for Paper Results 4d citibike.ipynb
Selecting Hyperparameters.ipynb
Simple histogram readout of citibike data.ipynb
Testing.ipynb
Testing_dp4gp.ipynb
Untitled.ipynb
Vector Code Demo.ipynb
WhiteHeteroscedastic experimentation.ipynb
code_for_manual_descent.py
demo_problem_with_standard_fn_noise.png
demo_problem_with_standard_fn_noise.svg
dp4gp demonstration.ipynb
dp4gp.py
dp4gp_datasets.py
dp4gp_histogram.py
dp4gp_integral_histogram.py
dp4gp_old.py
funky_kernel.pdf
gen_paper_results.py
install_notes.txt
launch_tests.py
price_dataset.csv
price_dataset10k.csv
price_dataset10k_wholeuk.csv
problem.png

# Differential Privacy for GPs

This repo covers my recent experimentation with Differential Privacy.

The key module is https://github.com/lionfish0/dp/blob/master/dp4gp.py

## Demo notebooks

Demonstrates using the dp4gp module https://github.com/lionfish0/dp/blob/master/Demonstrating%20dp4gp.ipynb

## Other

Simple example to test the integral kernel https://github.com/lionfish0/dp/blob/master/Building%20Histogram%20Class.ipynb

## Paper results

Used for plotting, etc https://github.com/lionfish0/dp/blob/master/Paper%20Results%201d%20Kung%20dataset.ipynb

Handling results from AWS computations https://github.com/lionfish0/dp/blob/master/Analyse%20DP%20results%20from%20AWS.ipynb

House price map creation https://github.com/lionfish0/dp/blob/master/Paper%20results%20Houseprices.ipynb

Old version of citibike analysis (as this requires multiple runs and is quite large I've moved it to run on AWS) https://github.com/lionfish0/dp/blob/master/Paper%20results%20Citibike.ipynb

## Useful notebooks

Originally I was going to use features from the census as additional inputs to the houseprice dataset, this allows access to the census API and also uses a geolocation database of postcodes. https://github.com/lionfish0/dp/blob/master/Census%20code.ipynb

Earlier version tried to create the noise covariance matrix by considering various rotations etc between the values of $\mathbf{c}_i$, before we solved the lagrange system. https://github.com/lionfish0/dp/blob/master/Rotate%20between%20two%20n-dimensional%20matrices.ipynb

Demo to self about how one can add noise to individual data points, making the noise hetroscedastic https://github.com/lionfish0/dp/blob/master/WhiteHeteroscedastic%20experimentation.ipynb

Code demonstrating the method works https://github.com/lionfish0/dp/blob/master/Testing_dp4gp.ipynb

## Exploring ideas/Junk

Exploring the citibike data a little https://github.com/lionfish0/dp/blob/master/Citibike%20experimentation.ipynb

First look at the DP cloaking idea https://github.com/lionfish0/dp/blob/master/Explaining%20Vector%20Alternative.ipynb

Working out how to calculate $\lambda_i$ https://github.com/lionfish0/dp/blob/master/Numerical%20Solution%20For%20Finding%20Langrange%20Multipliers-Corrected%20Gradient.ipynb

Earlier messing about with DP/GP/ideas (both full of wrongness) https://github.com/lionfish0/dp/blob/master/Improved%20Bound%20Constraint%20differing%20across%20domain.ipynb https://github.com/lionfish0/dp/blob/master/Fix%20to%20DP%20method.ipynb

# Future Work

Future work will involve fitting the hyperparameters in a private way and more importantly in a way which maximises the accuracy of the predictions given the DP (the best lengthscale for a non-DP GP isn't the same as for one with DP noise added, as short lengthscales lead to increased DP noise, so the optimum with DP noise may be longer).

You can’t perform that action at this time.