JDCOOT : A Joint Distribution Co-Optimal Transport Approach for Adapting Models to Heterogeneous Domains
Pierre Navaro (CNRS), Valérie Garès (INRIA) and Chloé Friguet (UBS) with contribution from Lucas Offroy and Marion Jeamart (Internships)
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 on the train dataset and the "test" performance is the prediction accuracy
using the same model on the test dataset.
Input :
learning data, 2 dataframes (source and target) with the following format :
-
$X$ are the 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