JDCOOT : A Joint Distribution Co-Optimal Transport Approach for Adapting Models to Heterogeneous Domains
Code : Lucas Offroy (Intern Engineer INSA)
Advisors : Valérie Garès (INRIA) and Chloé Friguet (UBS)
Maintenance : Pierre Navaro (CNRS)
This work addresses a fundamental challenge in modern statistical learning: adapting models to heterogeneous domains, where source and target data are characterised by different feature spaces and underlying distributions. We introduce Joint Distribution Co-Optimal Transport (JDCOOT), a domain adaptation algorithm that leverages optimal transport to align the joint feature-label distributions of distinct domains, enabling effective knowledge transfer across heterogeneous domains.
Use pixi to run the code
curl -fsSL https://pixi.sh/install.sh | bash
echo 'eval "$(pixi completion --shell bash)"' >> ~/.bashrc
source ~/.bashrcAll run scripts are in the examples directory:
git clone https://github.com/otrecoding/jdcoot/
cd jdcoot
pixi install
pixi run python examples/discrete_partial_jdcoot.pyFor all expermiments we use three methods reference, coot and jdcoot on two datasets (train and test).
The "pure" performance is the accuracy and the train dataset and the "test" performance is the prediction accuracy
using the same model on another dataset.
Input :
learning data, 2 dataframes (source and target) with the following format :
-
$X_i$ the ith observed covariate, -
$Z$ the discrete objective variable for classification analysis
test data, 2 dataframes (test_source and test_target)
supervision :
unsupervised: none of the observations of train target are labelled and all source observations are labelledsemi-supervised:prop_targetof the observations of train target are labelled and all train source observations are labelledpartial:prop_targetof the observations of train target are labelled andprop_sourceof the observations of train source are labelled