diff options
Diffstat (limited to 'docs/source/auto_examples/plot_screenkhorn_1D.rst')
-rw-r--r-- | docs/source/auto_examples/plot_screenkhorn_1D.rst | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/docs/source/auto_examples/plot_screenkhorn_1D.rst b/docs/source/auto_examples/plot_screenkhorn_1D.rst new file mode 100644 index 0000000..039479e --- /dev/null +++ b/docs/source/auto_examples/plot_screenkhorn_1D.rst @@ -0,0 +1,178 @@ +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here <sphx_glr_download_auto_examples_plot_screenkhorn_1D.py>` to download the full example code + .. rst-class:: sphx-glr-example-title + + .. _sphx_glr_auto_examples_plot_screenkhorn_1D.py: + + +=============================== +1D Screened optimal transport +=============================== + +This example illustrates the computation of Screenkhorn: +Screening Sinkhorn Algorithm for Optimal transport. + + +.. code-block:: default + + + # Author: Mokhtar Z. Alaya <mokhtarzahdi.alaya@gmail.com> + # + # License: MIT License + + import numpy as np + import matplotlib.pylab as pl + import ot.plot + from ot.datasets import make_1D_gauss as gauss + from ot.bregman import screenkhorn + + + + + + + + +Generate data +------------- + + +.. code-block:: default + + + n = 100 # nb bins + + # bin positions + x = np.arange(n, dtype=np.float64) + + # Gaussian distributions + a = gauss(n, m=20, s=5) # m= mean, s= std + b = gauss(n, m=60, s=10) + + # loss matrix + M = ot.dist(x.reshape((n, 1)), x.reshape((n, 1))) + M /= M.max() + + + + + + + + +Plot distributions and loss matrix +---------------------------------- + + +.. code-block:: default + + + pl.figure(1, figsize=(6.4, 3)) + pl.plot(x, a, 'b', label='Source distribution') + pl.plot(x, b, 'r', label='Target distribution') + pl.legend() + + # plot distributions and loss matrix + + pl.figure(2, figsize=(5, 5)) + ot.plot.plot1D_mat(a, b, M, 'Cost matrix M') + + + + +.. rst-class:: sphx-glr-horizontal + + + * + + .. image:: /auto_examples/images/sphx_glr_plot_screenkhorn_1D_001.png + :class: sphx-glr-multi-img + + * + + .. image:: /auto_examples/images/sphx_glr_plot_screenkhorn_1D_002.png + :class: sphx-glr-multi-img + + + + + +Solve Screenkhorn +----------------------- + + +.. code-block:: default + + + # Screenkhorn + lambd = 2e-03 # entropy parameter + ns_budget = 30 # budget number of points to be keeped in the source distribution + nt_budget = 30 # budget number of points to be keeped in the target distribution + + G_screen = screenkhorn(a, b, M, lambd, ns_budget, nt_budget, uniform=False, restricted=True, verbose=True) + pl.figure(4, figsize=(5, 5)) + ot.plot.plot1D_mat(a, b, G_screen, 'OT matrix Screenkhorn') + pl.show() + + + +.. image:: /auto_examples/images/sphx_glr_plot_screenkhorn_1D_003.png + :class: sphx-glr-single-img + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + /home/rflamary/PYTHON/POT/ot/bregman.py:2056: UserWarning: Bottleneck module is not installed. Install it from https://pypi.org/project/Bottleneck/ for better performance. + "Bottleneck module is not installed. Install it from https://pypi.org/project/Bottleneck/ for better performance.") + epsilon = 0.020986042861303855 + + kappa = 3.7476531411890917 + + Cardinality of selected points: |Isel| = 30 |Jsel| = 30 + + /home/rflamary/PYTHON/POT/examples/plot_screenkhorn_1D.py:68: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. + pl.show() + + + + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 0 minutes 0.228 seconds) + + +.. _sphx_glr_download_auto_examples_plot_screenkhorn_1D.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: plot_screenkhorn_1D.py <plot_screenkhorn_1D.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: plot_screenkhorn_1D.ipynb <plot_screenkhorn_1D.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_ |