twanvl / domain-adaptation

Domain Adaptation with Randomized Expectation Maximization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Domain Adaptation with Randomized Expectation Maximization

This is the implementation of the AdREM method for domain adaptation, plus accompanying code to test it on a variety of datasets.

The method itself is implemented in src/adrem/predict_adrem.m. Example:

addpath src/adrem
addpath src/evaluation
data = load_dataset('amazon');
% Predict labels of 'dvd' target domain using 'books' as source
% Preprocess data: divide by standard deviation over both domains
[x_src, x_tgt] = preprocess(data.x{1}, data.y{1}, data.x{2}, 'joint-std');
y = predict_adrem(x_src, data.y{1}, x_tgt);
mean(y == data.y{2})

The method requires that the MATLAB/octave bindings for liblinear are installed. These can be downloaded from https://www.csie.ntu.edu.tw/~cjlin/liblinear/

As a starting point for the experiments, look at src/evaluation/run_methods.m.

If you use this code, please cite

Biased Bagging for Unsupervised Domain Adaptation
Twan van Laarhoven, Elena Marchiori
2017

Additional information can be found at http://twanvl.nl/research/domain-adaptation-2017/ The datasets used in the experiments can also be downloaded there.

Comparison methods

The comparison methods can be downloaded from:

License

The AdREM method and evaluation code is provided under the MIT license (see file LICENSE). The comparison methods may be subject to other licenses.

About

Domain Adaptation with Randomized Expectation Maximization

License:MIT License


Languages

Language:MATLAB 68.8%Language:Python 21.6%Language:M 9.6%