def save_estimates(self, fname='', notes='', force=False):
"""
Saves the JIVE estimates
U, D, V, full, rank for block secific joint/individual spaces
U, D, V, rank for common joint space
some metadata (when saved, some nots)
Parameters
----------
fname: name of the file
notes: any notes you want to include
force: whether or note to overwrite a file with the same name
"""
if os.path.exists(fname) and (not force):
raise ValueError('%s already exists' % fname)
kwargs = {}
svd_dat = ['scores', 'sing_vals', 'loadings', 'rank']
kwargs['K'] = self.K
block_estimates = self.get_block_specific_estimates()
for k in range(self.K):
for mode in ['joint', 'individual']:
for dat in svd_dat + ['full']:
label = '%d_%s_%s' % (k, mode, dat)
kwargs[label] = block_estimates[k][mode][dat]
common_joint = self.get_common_joint_space_estimate()
for dat in svd_dat:
kwargs['common_%s' % dat] = common_joint[dat]
current_time = time.strftime("%m/%d/%Y %H:%M:%S")
kwargs['metadata'] = [current_time, notes]
np.savez_compressed(fname, **kwargs)
评论列表
文章目录