This repository contains the final project submitted for the AIM 846: Multiobjective Machine Learning course.
- Niranjan Gopal
- Akash Sridhar
The project investigates the trade-off between fairness and accuracy in machine learning models through multi-objective optimization techniques. We aim to identify Pareto-optimal solutions that balance predictive performance with fairness constraints.
We utilize the Bank Marketing Dataset, which contains information about direct marketing campaigns of a Portuguese banking institution. The sensitive attribute considered for fairness evaluation is marital.
We used the following solvers for multi-objective optimization:
- Optuna
- BoTorch
1_eda_preprocess.ipynb: Data exploration and preprocessing steps2_optuna.ipynb: Hyperparameter tuning using Optuna3_botorch_lr.ipynb: Bayesian optimization for Logistic Regression3_botorch_nn.ipynb: Bayesian optimization for Neural Networks3_botorch_nn2.ipynb: Cleaned-up NN notebook with GPU/CPU workflow handling3_botorch_rf.ipynb: Bayesian optimization for Random Forest4_combining_pareto_from_all_models.ipynb: Aggregating Pareto fronts from all modelsbank.csv: Original datasetprocessed_bank_marketing.csv: Preprocessed dataseteach_models_pareto_results.csv: Pareto results for individual modelsfinal_pareto_front.csv: Combined Pareto frontrequirements.txt: List of dependencies
-
Clone the repository:
git clone https://github.com/Niranjan-GopaL/Modeling_Fairness_Accuracy_MOO_approach.git
-
Navigate to the project directory:
cd Modeling_Fairness_Accuracy_MOO_approach -
Install the required packages:
pip install -r requirements.txt
Run the Jupyter notebooks in the order listed above to reproduce the results. Ensure that the datasets are placed in the appropriate directories as referenced in the notebooks.