summaryrefslogtreecommitdiff
path: root/notebooks/plot_otda_mapping.ipynb
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2020-04-22 11:39:23 +0200
committerRémi Flamary <remi.flamary@gmail.com>2020-04-22 11:39:23 +0200
commit135c011092cb442b0b874b565b6a2ca3f09234c4 (patch)
tree06a1a5209ee090824ae74af76bd2426295edc424 /notebooks/plot_otda_mapping.ipynb
parent5f679247f64fa1c8e277f34165850caea311a084 (diff)
remove notebooks and cleanup readme and doc
Diffstat (limited to 'notebooks/plot_otda_mapping.ipynb')
-rw-r--r--notebooks/plot_otda_mapping.ipynb290
1 files changed, 0 insertions, 290 deletions
diff --git a/notebooks/plot_otda_mapping.ipynb b/notebooks/plot_otda_mapping.ipynb
deleted file mode 100644
index c604278..0000000
--- a/notebooks/plot_otda_mapping.ipynb
+++ /dev/null
@@ -1,290 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": false
- },
- "outputs": [],
- "source": [
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "# OT mapping estimation for domain adaptation\n",
- "\n",
- "\n",
- "This example presents how to use MappingTransport to estimate at the same\n",
- "time both the coupling transport and approximate the transport map with either\n",
- "a linear or a kernelized mapping as introduced in [8].\n",
- "\n",
- "[8] M. Perrot, N. Courty, R. Flamary, A. Habrard,\n",
- " \"Mapping estimation for discrete optimal transport\",\n",
- " Neural Information Processing Systems (NIPS), 2016.\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [],
- "source": [
- "# Authors: Remi Flamary <remi.flamary@unice.fr>\n",
- "# Stanislas Chambon <stan.chambon@gmail.com>\n",
- "#\n",
- "# License: MIT License\n",
- "\n",
- "import numpy as np\n",
- "import matplotlib.pylab as pl\n",
- "import ot"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Generate data\n",
- "-------------\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [],
- "source": [
- "n_source_samples = 100\n",
- "n_target_samples = 100\n",
- "theta = 2 * np.pi / 20\n",
- "noise_level = 0.1\n",
- "\n",
- "Xs, ys = ot.datasets.make_data_classif(\n",
- " 'gaussrot', n_source_samples, nz=noise_level)\n",
- "Xs_new, _ = ot.datasets.make_data_classif(\n",
- " 'gaussrot', n_source_samples, nz=noise_level)\n",
- "Xt, yt = ot.datasets.make_data_classif(\n",
- " 'gaussrot', n_target_samples, theta=theta, nz=noise_level)\n",
- "\n",
- "# one of the target mode changes its variance (no linear mapping)\n",
- "Xt[yt == 2] *= 3\n",
- "Xt = Xt + 4"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Plot data\n",
- "---------\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Text(0.5, 1.0, 'Source and target distributions')"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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t0bE9e6779KuXTs6duzISSedBMCGDRs48cQT6dKlC126dOGnn34CrBGlPn36MHjwYJo1a8bYsWN544036NGjB+3bt2fdunUAjBw5kquvvppu3brRqlUrZs6cGdFvVlYWl112GT169KBz5858/PHHAKxYsYIePXrQqVMnOnTowB9//FHu914TKaWOMFl7s5l233vkZnvzXgv4AmTuyeKDJ2fFMTKlVFmddtppbNq0iVatWnHttdfy7bffAtYi+JEjRzJ9+nSWLVtGIBDg+eefL7G9lStXMmfOHN566y1eeOEFNmzYwOLFi1m6dCkXXnghfr+fG264gffee4+FCxdy2WWXceedd0a0M378eL744guWLFnCjBkzADjqqKP48ssvWbRoEdOnT+fGG2/MO3/JkiVMnjyZ33//nWnTprFmzRrmz5/PqFGj8hI4sJKx+fPnM2vWLK6++uqIBeITJ07klFNOYf78+cydO5cxY8aQlZXF5MmTGT16NIsXL2bBggU0aNCgTO93fjpep9QR5s+lf+FwO/DlFhz293v9LJi9hEsnDI9TZEodGfaPQs37c3eBz6df1avMbSYnJ7Nw4UK+//575s6dy7Bhw3jooYfo3LkzTZs2pVWrVgBccsklPPvss9x0003FtnfWWWeRkJAAwJw5c7j66qvzpvhq1qzJ8uXLWb58Of369QMgGAxSr169iHZ69+7NyJEjGTp0KEOGDAGsmlvXX389ixcvxm63s2bNmrzzu3fvntdO8+bNOe200wBo3749c+fOzTtv6NCh2Gw2WrZsSbNmzVi1alWBfmfPns2MGTN47LHHACuh3LhxI7169WLixIls3ryZIUOG0LJly1K+w0XTREqpI0xqnVSCvkDE6yJQu2FaHCJSSsWC3W6nb9++9O3bl/bt2zN16lQ6d+5c5PkOh4NQKAQQMaKTlJRUbF/GGNq2bcvPPxc/NTl58mTmzZvHrFmz6Nq1KwsXLmTSpEnUqVOHJUuWEAqF8Hg8eefvn5oEsNlseZ/bbDYCgQM/two/XVf4c2MM77//Pq1bty7weps2bejZsyezZs1i4MCBTJkyhVNOOaXYeyiJTu0pdYRp0LIezTs1weG0F3jdleDmvP+eGaeolDpyTL+qF9Ov6kXPpjXp2bRm3uflsXr16gLrfRYvXkzjxo1p3bo1GzZsYO3atQBMmzaNPn36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\n",
- "text/plain": [
- "<Figure size 720x360 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "pl.figure(1, (10, 5))\n",
- "pl.clf()\n",
- "pl.scatter(Xs[:, 0], Xs[:, 1], c=ys, marker='+', label='Source samples')\n",
- "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o', label='Target samples')\n",
- "pl.legend(loc=0)\n",
- "pl.title('Source and target distributions')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Instantiate the different transport algorithms and fit them\n",
- "-----------------------------------------------------------\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "It. |Loss |Delta loss\n",
- "--------------------------------\n",
- " 0|4.130455e+03|0.000000e+00\n",
- " 1|4.124174e+03|-1.520585e-03\n",
- " 2|4.123972e+03|-4.893906e-05\n",
- " 3|4.123892e+03|-1.957570e-05\n",
- " 4|4.123852e+03|-9.690449e-06\n",
- "It. |Loss |Delta loss\n",
- "--------------------------------\n",
- " 0|4.155681e+02|0.000000e+00\n",
- " 1|4.121954e+02|-8.115904e-03\n",
- " 2|4.120356e+02|-3.877130e-04\n",
- " 3|4.119541e+02|-1.978089e-04\n",
- " 4|4.118961e+02|-1.406833e-04\n",
- " 5|4.118524e+02|-1.061404e-04\n",
- " 6|4.118195e+02|-7.984227e-05\n",
- " 7|4.117940e+02|-6.188410e-05\n",
- " 8|4.117747e+02|-4.692100e-05\n",
- " 9|4.117580e+02|-4.045536e-05\n",
- " 10|4.117441e+02|-3.393923e-05\n"
- ]
- }
- ],
- "source": [
- "# MappingTransport with linear kernel\n",
- "ot_mapping_linear = ot.da.MappingTransport(\n",
- " kernel=\"linear\", mu=1e0, eta=1e-8, bias=True,\n",
- " max_iter=20, verbose=True)\n",
- "\n",
- "ot_mapping_linear.fit(Xs=Xs, Xt=Xt)\n",
- "\n",
- "# for original source samples, transform applies barycentric mapping\n",
- "transp_Xs_linear = ot_mapping_linear.transform(Xs=Xs)\n",
- "\n",
- "# for out of source samples, transform applies the linear mapping\n",
- "transp_Xs_linear_new = ot_mapping_linear.transform(Xs=Xs_new)\n",
- "\n",
- "\n",
- "# MappingTransport with gaussian kernel\n",
- "ot_mapping_gaussian = ot.da.MappingTransport(\n",
- " kernel=\"gaussian\", eta=1e-5, mu=1e-1, bias=True, sigma=1,\n",
- " max_iter=10, verbose=True)\n",
- "ot_mapping_gaussian.fit(Xs=Xs, Xt=Xt)\n",
- "\n",
- "# for original source samples, transform applies barycentric mapping\n",
- "transp_Xs_gaussian = ot_mapping_gaussian.transform(Xs=Xs)\n",
- "\n",
- "# for out of source samples, transform applies the gaussian mapping\n",
- "transp_Xs_gaussian_new = ot_mapping_gaussian.transform(Xs=Xs_new)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Plot transported samples\n",
- "------------------------\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "image/png": "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fT1nnnkmq1atQkRIJBLpfccffzwjRpje+GmnncaLL77IqaeeyoQJEzj66KMBWLRoEbfffjsnnHACy5cvT5fI8DyP8vJy6urqqKur49hjjwVMVvO//OUv3WQ87LDD+OIXv0gikeDUU09lzpw5PPvss8yfPz9dqn7hwoU8//zz6cKJvfGpT30qXQ34mWee4dFHH03vKykp4U9/+hMrVqxIf4d4PM68ed3v86xZs1i4cCGnnnpq+po7u18LFiygoKCAgoICioqK+MQnPgGYciH//e9/08elRrDHHnssDQ0N1NXVdbruM888w4oVHWWSGhoaaGpq4uijj+bSy7/D5844mdNOPYbx48fQORuFjybegvDc7OoRWvY6RAQJTULdcZisDZFu6//6W9BvoIX/ui6C7w+qSTS5IcgM45v5stD+OG7BgNsabLLSQA02J598MpdddhlLliyhuro6vf3qq69mwYIFPPnkk6xfv5758+en93V9yaU+97RdVTnooIP41786uye7vnx749hjj+X555/nqaee4qyzzuKSSy6hqKj30M9MGVJJbFPk5eV1PbwTqsrxxx/PI488stPjnnrqKZ5//nn++Mc/8u1vf5s333xzp/crVRIE+i4R0tt3AfB9n5deeolYrLM//5vf/CYnnngif/7zn/nA/LP4659+wbSDjutoBwnypDUav7/FMshIt0Kc2YkmV5kUSU6xSXPkN0FyOeocMpRVpnskK+egHjt/Ho+dP48jppRyxJTS9OfdxRe/+EWuvfZaZs6c2Wl7fX19Omjivvvu67Tv6aefpqamhtbWVn73u9+lRxwbN25MG6KHH36YD3zgAxxwwAFUVlamtycSCd566y2Ki4spLi7mxRdfBOChhx7qUb4NGzYwevRozj33XM455xxee+01Dj/8cJYuXUpVVRWe5/HII49w3HHmhTx69GhWrlyJ7/s8+eSTvX7v448/vtO8V21tLUceeST/+Mc/WL16NQDNzc28+27ngmi+77Np0yYWLFjA9773Perr62lqatrp/eovqdIlL774IkVFRd0M8Uc+8hF+/OMfpz+//rop6rxmzRpmzpzJFVdcwWGHzOTtdzoXNQSCrBSJ7tstlvcpqq3gVSBBDj4wi47RhIn0yzKy0kANNuPHj+drX/tat+2LFy/myiuvZO7cuZ16+QCHH344p59+OrNmzeL0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\n",
- "text/plain": [
- "<Figure size 432x288 with 4 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "pl.figure(2)\n",
- "pl.clf()\n",
- "pl.subplot(2, 2, 1)\n",
- "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
- " label='Target samples', alpha=.2)\n",
- "pl.scatter(transp_Xs_linear[:, 0], transp_Xs_linear[:, 1], c=ys, marker='+',\n",
- " label='Mapped source samples')\n",
- "pl.title(\"Bary. mapping (linear)\")\n",
- "pl.legend(loc=0)\n",
- "\n",
- "pl.subplot(2, 2, 2)\n",
- "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
- " label='Target samples', alpha=.2)\n",
- "pl.scatter(transp_Xs_linear_new[:, 0], transp_Xs_linear_new[:, 1],\n",
- " c=ys, marker='+', label='Learned mapping')\n",
- "pl.title(\"Estim. mapping (linear)\")\n",
- "\n",
- "pl.subplot(2, 2, 3)\n",
- "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
- " label='Target samples', alpha=.2)\n",
- "pl.scatter(transp_Xs_gaussian[:, 0], transp_Xs_gaussian[:, 1], c=ys,\n",
- " marker='+', label='barycentric mapping')\n",
- "pl.title(\"Bary. mapping (kernel)\")\n",
- "\n",
- "pl.subplot(2, 2, 4)\n",
- "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
- " label='Target samples', alpha=.2)\n",
- "pl.scatter(transp_Xs_gaussian_new[:, 0], transp_Xs_gaussian_new[:, 1], c=ys,\n",
- " marker='+', label='Learned mapping')\n",
- "pl.title(\"Estim. mapping (kernel)\")\n",
- "pl.tight_layout()\n",
- "\n",
- "pl.show()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.6.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 0
-}