This is a Python implementation of InFoRM: Individual Fairness on Graph Mining for the task of PageRank, spectral clustering and LINE, as described in our paper:
Jian Kang, Jingrui He, Ross Maciejewski, Hanghang Tong. InFoRM: Individual Fairness on Graph Mining. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 379-389. 2020 (KDD 2020).
- python 3 (>3.7)
- numpy
- scipy
- sklearn
- networkx
We provide data used in the paper in data
folder. Have a look at the load_graph.py
for your reference.
In the demos, we load PPI dataset.
We provide three mutually exclusive debiasing method in method
folder:
debias_graph.py
: Debiasing the input graph. Feel free to override__init__()
andfit()
functions to debias your own method.debias_model.py
: Debiasing the mining model. Feel free to override__init__()
andfit()
functions to debias your own method.debias_result.py
: Debiasing the mining results.
Please check our demos in demo_{#1}.ipynb
where {#1}
can be PageRank, spectral_clustering or LINE.
Please cite our paper if you use this code in your own work:
@inproceedings{kang2020inform,
title={InFoRM: Individual Fairness on Graph Mining},
author={Kang, Jian and He, Jingrui and Maciejewski, Ross and Tong, Hanghang},
booktitle={Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={379–389},
year={2020},
organization={ACM}
}