In [1]:
import smurff
import matrix_io as mio
import numpy as np
train = mio.read_matrix("train_centered.sdm")
np.mean(train)
Out[1]:
In [2]:
train_csr = train.tocsr()
num_nonzeros = np.diff(train_csr.indptr)
num_nonzeros[2]
Out[2]:
In [3]:
#row 2 seems empty
train_csr[2,:]
Out[3]:
In [4]:
sess = smurff.PredictSession("root.ini")
print(sess)
In [5]:
#latent representation for compound 2
u_2 = sess.samples[0].latents[0][:,2]
u_2
Out[5]:
In [6]:
# feature vector compound 2
ecfp = mio.read_matrix("feat_nonzeros.sdm").tocsr()
f_2 = ecfp[2,:]
f_2.shape
Out[6]:
In [7]:
beta = sess.samples[0].betas[0]
beta.shape
Out[7]:
In [8]:
# predict U from features (NOT adding mean)
u_2_f1 = f_2 * beta.T
u_2_f1
Out[8]:
In [9]:
umean = np.mean(sess.samples[0].latents[0], axis=1)
umean, umean.shape
Out[9]:
In [10]:
# predict U from features (YES adding mean)
u_2_f2 = f_2 * beta.T + umean
u_2_f2
Out[10]:
In [11]:
u_2 - u_2_f2
Out[11]:
In [12]:
Pf = sess.predict([f_2,0])
np.mean(Pf)
Out[12]:
In [13]:
Pu = sess.predict([2,0])
np.mean(Pu)
Out[13]:
In [ ]: