summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2016-10-26 16:43:20 +0200
committerRémi Flamary <remi.flamary@gmail.com>2016-10-26 16:43:20 +0200
commit22dcef6c1cf6bd7ae626ef768359c7495298ba29 (patch)
tree0016ba236f648b5ffb915fe94382bab9a1c1c0ed /examples
parent8d45086670f2666a316a94a33179658d20ac5ec2 (diff)
add conditionnal gradient and demo
Diffstat (limited to 'examples')
-rw-r--r--examples/demo_optim_OTreg.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/demo_optim_OTreg.py b/examples/demo_optim_OTreg.py
new file mode 100644
index 0000000..f12fdc1
--- /dev/null
+++ b/examples/demo_optim_OTreg.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+"""
+demo of Optimal transport for domain adaptation
+"""
+
+import numpy as np
+import matplotlib.pylab as pl
+import ot
+
+
+
+#%% parameters
+
+n=100 # nb bins
+
+# bin positions
+x=np.arange(n,dtype=np.float64)
+
+# Gaussian distributions
+a=ot.datasets.get_1D_gauss(n,m=20,s=20) # m= mean, s= std
+b=ot.datasets.get_1D_gauss(n,m=60,s=60)
+
+# loss matrix
+M=ot.dist(x.reshape((n,1)),x.reshape((n,1)))
+M/=M.max()
+
+#%% EMD
+
+G0=ot.emd(a,b,M)
+
+pl.figure(3)
+ot.plot.plot1D_mat(a,b,G0,'OT matrix G0')
+
+#%% exampel of regularization with Frobnisu norm
+
+def f(G):
+ return 0.5*np.sum(G**2)
+
+def df(G):
+ return G
+
+reg=1e1
+
+Greg=ot.optim.cg(a,b,M,reg,f,df,verbose=True)
+
+pl.figure(4)
+ot.plot.plot1D_mat(a,b,Greg,'OT matrix G0') \ No newline at end of file