# Local Data Debiasing for Fairness Based on Generative Adversarial Training
## 5 Experimental Evaluation
### Experimental Setting  
_Dataset description._ We have evaluated our approach on two datasets that are classical in the fairness literature, namely the _Adult Census Income_ as well as on _German Credit_. Both are available on the UCI repository ([[https://archive.ics.uci.edu/ml/index.php](https://archive.ics.uci.edu/ml/index.php)]([https://archive.ics.uci.edu/ml/index.php](https://archive.ics.uci.edu/ml/index.php))) (accessed on 20 November 2017).Adult Census reports the financial situation of individuals, with 45,222 records after the removal of rows with empty values. Each record is characterized by 15 attributes among which we selected the _gender_ (i.e., male or female) as the sensitive one and the _income level_ (i.e., over or below 50 K$) as the decision. German Credit is composed of 1000 applicants to a credit loan, described by 21 of their banking characteristics. Previous work [49] have found that using the _age_ as the sensitive attribute by binarizing it with a threshold of 25 years to differentiate between old and young yields the maximum discrimination based on \(DemoParity\). In this dataset, the decision attribute is the quality of the customer with respect to their credit score (i.e., good or bad). Table 2 summarizes the distribution of the different groups with respect to \(S\) and Y. We will mostly discuss the results on Adult dataset in this section. However, the results obtained on German credit were quite similar. Datasets preprocessingThe preprocessing step consists in shaping and formatting the data such that it can be used by the neural network models. The first step consists in the one-hot encoding of categorical and numerical attributes with less than 5 values, followed by a scaling between 0 and 1. Besides on Adult dataset, we need to apply a logarithm on columns _capital-gain_ and _capital-loss_ before any step because those attributes exhibit a distribution close to a Dirac delta [50], with the maximal values being, respectively, 9999 and 4356, and a median of 0 for both (respectively 91% and 95% of records have a value of 0). Since most values are equal to 0, the sanitizer will always nullify both attributes and the approach will not converge. Afterward, postprocessing steps consisting of reversing the preprocessing ones are performed in order to remap the generated data onto their original shape. Models hyper-parametersTable 3 details the structure of neural networks that have yielded the best results, respectively, on the Adult and German credit datasets. The training rate represents the number of times for which an instance is trained during a single iteration. For instance, for an iteration \(i\), the discriminator is trained with \(100\times 50=5000\) records while the sanitizer is trained with \(1\times 100=100\) records. The number of iterations is equal to: \(iterations=datasetsize/batchsize\). Our experiments were run for a total of 40 epochs and the value of \(\alpha\) was varied using a geometric progression: \(\alpha_{i}=0.2+0.4\frac{2^{i}-1}{2^{i-1}}\); \(i\in\{1,\dots,10\}\). We refer the reader to Section 5.4 for a comparison of the execution time of our approach compared to other methods. Training processWe will evaluate GANSan using metrics such as the fidelity \(fid\), the \(BER\) as well as the demographic parity \(DemoParity\) (cf. Section 4.2). For this, we have conducted a 10-fold cross-validation during which the dataset is divided into ten blocks. During each fold, 8 blocks are used for the training, while another one is retained as the validation set and the last one as the test set. We computed the \(BER\) and \(sAcc\) using the internal discriminator of GANSan and three external classifiers independent of the GANSan framework, namely _Support Vector Machines_ (SVM) [51], _Multilayer Perceptron_ (MLP) [52] and _Gradient Boosting_ (GB) [53]. For all these