summaryrefslogtreecommitdiff
path: root/examples/Demo_1D_barycenter.ipynb
blob: 0d7247127ee82aed8ca59304a16e45bfcdd990d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
{
 "metadata": {
  "name": "",
  "signature": "sha256:52487801ef7f544098c7df1333a41148cb4d9e7393c84ea171d60b030b40c19f"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "#1D Wasserstein barycenter demo"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "import matplotlib.pylab as pl\n",
      "import ot"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Dataset Generation"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "n=100 # nb bins\n",
      "\n",
      "# bin positions\n",
      "x=np.arange(n,dtype=np.float64)\n",
      "\n",
      "# Gaussian distributions\n",
      "a1=ot.datasets.get_1D_gauss(n,m=20,s=20) # m= mean, s= std\n",
      "a2=ot.datasets.get_1D_gauss(n,m=60,s=60)\n",
      "\n",
      "# creating matrix A containing all distributions\n",
      "A=np.vstack((a1,a2)).T\n",
      "nbd=A.shape[1]\n",
      "\n",
      "# loss matrix + normalization\n",
      "M=ot.utils.dist0(n)\n",
      "M/=M.max()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Plot distributions"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "pl.figure(1)\n",
      "for i in range(nbd):\n",
      "    pl.plot(x,A[:,i])\n",
      "pl.title('Distributions')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 3,
       "text": [
        "<matplotlib.text.Text at 0x7f72b882f7d0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nPwcUuwG6JClfAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f72bb01a7d0>"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Barycenter computation (for l2 and Wasserstein)"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# l2bary\n",
      "bary_l2=A.mean(1)\n",
      "\n",
      "# wasserstein\n",
      "reg=1e-3\n",
      "bary_wass=ot.bregman.barycenter(A,M,reg)\n",
      "\n",
      "pl.figure(2)\n",
      "pl.clf()\n",
      "pl.subplot(2,1,1)\n",
      "for i in range(nbd):\n",
      "    pl.plot(x,A[:,i])\n",
      "pl.title('Distributions')\n",
      "\n",
      "pl.subplot(2,1,2)\n",
      "pl.plot(x,bary_l2,'r',label='l2')\n",
      "pl.plot(x,bary_wass,'g',label='Wasserstein')\n",
      "pl.legend()\n",
      "pl.title('Barycenters')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "<matplotlib.text.Text at 0x7f72b8660ed0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f72b87af410>"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 4
    }
   ],
   "metadata": {}
  }
 ]
}