This repository contains the implementation and analysis for the master's thesis project investigating how preprocessing decisions affect fairness in Predictive Process Monitoring (PPM) systems.
This study examines the impact of preprocessing choices, specifically prefix length and encoding strategies, on fairness outcomes in PPM systems. The research addresses the critical question: How do preprocessing steps, particularly prefix length and encoding type, affect fairness in predictive process monitoring?
Do decisions during the data preparation phase, particularly prefix length and encoding type, affect fairness in predictive process monitoring?
- Dataset:
hiring_log_medium.csv(simulated hiring process data) - Source: Pohl et al. (2023) - A Collection of Simulated Event Logs for Fairness Assessment in Process Mining
- Size: 69,055 rows, 10,000 unique cases
- Activities: 12 unique activities
- Resources: 50 unique resources
The study tests 6 different configurations:
| Prefix Length | Encoding Type | Description |
|---|---|---|
| 3 | Simple | First 3 activities (activity only) |
| 3 | Complex | First 3 activities + resource info |
| 5 | Simple | First 5 activities (activity only) |
| 5 | Complex | First 5 activities + resource info |
| 10 | Simple | First 10 activities (activity only) |
| 10 | Complex | First 10 activities + resource info |
01_build_aequitas_inputs.py- Main preprocessing and model training02A_make_aequitas_csvs.py- Prepare data for Aequitas02B_run_aequitas_audit.py- Run fairness audit03_summarize_reports.py- Generate summary reports03b_key_findings.py- Extract key findingscreate_clean_visualizations.py- Generate result visualizations
- Prefix Length Effect: Shorter prefixes (3 activities) show lower bias levels than longer prefixes (10 activities)
- Encoding Strategy Impact: Simple encoding produces less bias than complex encoding
- Configuration Interaction: Best fairness performance: Prefix 3 + Simple encoding
- Attribute Sensitivity: Sensitive attributes show consistent bias patterns, while dynamic attributes vary by configuration
- PPR (Predicted Positive Rate): Positive prediction rate for each group
- FDR (False Discovery Rate): FP/(TP+FP)
- FOR (False Omission Rate): FN/(TN+FN)
- TPR (True Positive Rate): TP/(TP+FN)
- FPR (False Positive Rate): FP/(FP+TN)
- Threshold: Disparity < 0.8 or > 1.25 indicates fairness violation
- Severity Levels:
- Moderate: 0.8 ≤ disparity ≤ 1.25
- High: 0.6 ≤ disparity < 0.8 or 1.25 < disparity ≤ 1.67
- Severe: disparity < 0.6 or disparity > 1.67
- Python 3.8+
- PyCharm IDE (recommended)
- Aequitas toolkit for fairness assessment
pandas
numpy
scikit-learn
matplotlib
seaborn
aequitas
git clone https://github.com/yourusername/fairness-ppm.git
cd fairness-ppm
pip install -r requirements.txt# Run complete pipeline
python 01_build_aequitas_inputs.py
python 02A_make_aequitas_csvs.py
python 02B_run_aequitas_audit.py
python 03_summarize_reports.py
python create_clean_visualizations.py├── hiring_log_medium.csv # Main dataset
├── 01_build_aequitas_inputs.py # Preprocessing and model training
├── 02A_make_aequitas_csvs.py # Aequitas input preparation
├── 02B_run_aequitas_audit.py # Fairness audit execution
├── 03_summarize_reports.py # Report generation
├── 03b_key_findings.py # Key findings extraction
├── create_clean_visualizations.py # Visualization generation
├── outputs/ # Model outputs
├── outputs_aeq/ # Aequitas formatted data
├── outputs_reports/ # Fairness reports
└── README.md # This file
_summary_all_disparities.csv- Complete fairness analysis_violations_only.csv- Only fairness violationsprefix{length}_{encoding}_aeq_disparities.csv- Individual configuration results
ppr_violations_heatmap.png- PPR violations by configurationaverage_disparity_heatmap.png- Average disparity by configurationattribute_type_violations.png- Sensitive vs dynamic attribute violationsseverity_distribution.png- Violation severity distributionworst_disparities.png- Top 10 worst disparitiesmetric_violations.png- Violations by metric typesensitive_attributes_boxplot.png- Sensitive attributes analysisconfiguration_performance.png- Overall configuration performance
- Prefix Extraction: Extract sequences of specified length from process traces
- Encoding: Apply simple (activity-only) or complex (activity+resource) encoding
- Label Generation: Binary classification (Hire = 1, Not Hire = 0)
- Algorithm: Decision Tree Classifier
- Split: 80/20 train-test split (case-based)
- Prediction: Binary output (0 or 1)
- Toolkit: Aequitas
- Reference Groups:
- Gender: Most common value
- Age: 45-64 (largest group)
- Citizenship: T (True)
- German Speaking: T (True)
- Religious: Most common value
- Statistical Significance: n≥30 filter applied
- Mehrabi, N., et al. (2021). A Survey on Bias and Fairness in Machine Learning
- Pohl, T., et al. (2023). A Collection of Simulated Event Logs for Fairness Assessment in Process Mining
- Saleiro, P., et al. (2018). Aequitas: A Bias and Fairness Audit Toolkit
This project was developed as part of a master's thesis at Humboldt University Berlin.
This project is for academic research purposes.
This is an academic research project. For questions or suggestions, please contact the author.
Note: This implementation addresses the research question of how preprocessing decisions impact fairness in PPM systems, providing empirical evidence that technical choices have ethical implications.