summaryrefslogtreecommitdiff
path: root/examples/plot_otda_linear_mapping.py
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2018-03-20 16:21:47 +0100
committerRémi Flamary <remi.flamary@gmail.com>2018-03-20 16:21:47 +0100
commit8fc9fce6c920c646ea7324ac0af54ad53e9aa1bf (patch)
treeec05a571277c01cbfcb62162a06bf34b098ddb16 /examples/plot_otda_linear_mapping.py
parentcb739f625921e7fc19113d6d758e27ac69eac24b (diff)
add class LinearTransport
Diffstat (limited to 'examples/plot_otda_linear_mapping.py')
-rw-r--r--examples/plot_otda_linear_mapping.py35
1 files changed, 32 insertions, 3 deletions
diff --git a/examples/plot_otda_linear_mapping.py b/examples/plot_otda_linear_mapping.py
index eff2648..44aa9c5 100644
--- a/examples/plot_otda_linear_mapping.py
+++ b/examples/plot_otda_linear_mapping.py
@@ -9,7 +9,7 @@ Created on Tue Mar 20 14:31:15 2018
import numpy as np
import pylab as pl
import ot
-
+import scipy.linalg as linalg
#%%
@@ -19,11 +19,13 @@ n=1000
d=2
sigma=.1
+# source samples
angles=np.random.rand(n,1)*2*np.pi
xs=np.concatenate((np.sin(angles),np.cos(angles)),axis=1)+sigma*np.random.randn(n,2)
-
xs[:n//2,1]+=2
+
+# target samples
anglet=np.random.rand(n,1)*2*np.pi
xt=np.concatenate((np.sin(anglet),np.cos(anglet)),axis=1)+sigma*np.random.randn(n,2)
xt[:n//2,1]+=2
@@ -43,7 +45,33 @@ pl.plot(xt[:,0],xt[:,1],'o')
Ae,be=ot.da.OT_mapping_linear(xs,xt)
+Ae1=linalg.inv(Ae)
+be1=-be.dot(Ae1)
+
xst=xs.dot(Ae)+be
+xts=xt.dot(Ae1)+be1
+
+##%%
+
+pl.figure(1,(5,5))
+pl.clf()
+pl.plot(xs[:,0],xs[:,1],'+')
+pl.plot(xt[:,0],xt[:,1],'o')
+pl.plot(xst[:,0],xst[:,1],'+')
+pl.plot(xts[:,0],xts[:,1],'o')
+
+pl.show()
+
+
+#%% Example class with on images
+
+mapping=ot.da.LinearTransport()
+
+mapping.fit(Xs=xs,Xt=xt)
+
+
+xst=mapping.transform(Xs=xs)
+xts=mapping.inverse_transform(Xt=xt)
##%%
@@ -51,4 +79,5 @@ pl.figure(1,(5,5))
pl.clf()
pl.plot(xs[:,0],xs[:,1],'+')
pl.plot(xt[:,0],xt[:,1],'o')
-pl.plot(xst[:,0],xst[:,1],'+') \ No newline at end of file
+pl.plot(xst[:,0],xst[:,1],'+')
+pl.plot(xts[:,0],xts[:,1],'o')