patDict = OrderedDict(sorted({}.items(), key= lambda t:t[1])) #axis dict, patient mode medDict = OrderedDict(sorted({}.items(), key= lambda t:t[1])) #axis dict, med mode jdDict = OrderedDict(sorted({}.items(), key= lambda t:t[1])) #axis dict, jd mode jdrangeDict = OrderedDict(sorted({}.items(), key= lambda t:t[1])) #axis dict, jdrange mode for pt in l_patients_for_tensor: patDict[pt] = len(patDict) for med in l_med_names_unique: medDict[med] = len(medDict) for jdrange in l_jdrange_names_unique: jdrangeDict[jdrange] = len(jdrangeDict) axisDict = {0: patDict, 1: jdrangeDict, 2:medDict} #df_MAP_CHANGE = df_MAP_CHANGE_finite[df_MAP_CHANGE_finite['RUID'].isin(l_patients_for_tensor)] df_MAP_CHANGE['MAP_CHANGE_GOOD'] = df_MAP_CHANGE['MEDIAN_MAP_CHANGE']<=-2 df_MAP_CHANGE['MAP_CHANGE_GOOD'] = df_MAP_CHANGE['MAP_CHANGE_GOOD'].astype('int') df_MAP_CHANGE = df_MAP_CHANGE.sort(['RUID'], ascending=1) l_patClass_allpts = df_MAP_CHANGE['MAP_CHANGE_GOOD'] #patient classifications l_patClass_allfinitepts = list(df_MAP_CHANGE[df_MAP_CHANGE.RUID.isin(l_all_pts_with_MEDS_JDRANGE)]['MAP_CHANGE_GOOD']) od_patClass_for_tensor = OrderedDict(zip(patDict.keys(), l_patClass_allfinitepts)) #OrderedDict of patient classifications #save the tensor tensorIO.saveSingleTensor(sparse_tensor_all_finite, axisDict, od_patClass_for_tensor, "htn-allfinite-tensor-{0}.dat") # ############################################################################################################ ############################################################################################################ ############################################################################################################
# build SPARSE tensor from our data nparr_data_by_pt = np.array(l_data_pt_med_jdrange) num_dims = len(nparr_data_by_pt.shape) nnz = np.nonzero(nparr_data_by_pt) data_values = nparr_data_by_pt[nnz].flatten() data_values = np.reshape(data_values, (len(data_values), 1)) nonzero_subs = np.zeros((len(data_values), num_dims)) nonzero_subs.dtype = 'int' for n in range(num_dims): nonzero_subs[:, n] = nnz[n] sparse_tensor_first_10_ruid = sptensor.sptensor(nonzero_subs, data_values) #save the tensor tensorIO.saveSingleTensor(sparse_tensor_first_10_ruid, axisDict, od_patClass_first_10_ruid, "htn-first10-tensor-{0}.dat") # ### LEFT OFF HERE: june 25, 6pm ################################################################## ## load the tensor ####### loaded_X, loaded_axisDict, loaded_classDict = tensorIO.loadSingleTensor("htn-first10-tensor-{0}.dat") ## do the decomposition ###### #store the data in "data" data = {'exptID': exptID, 'size': MSize, 'sparsity': AFill, "rank": R, "alpha": alpha, "gamma": gamma} def calculateValues(TM, M): fms = TM.greedy_fms(M) fos = TM.greedy_fos(M) nnz = tensorTools.countTensorNNZ(M) return fms, fos, nnz
key=lambda t: t[1])) #axis dict, jdrange mode for pt in l_patients_for_tensor: patDict[pt] = len(patDict) for med in l_med_names_unique: medDict[med] = len(medDict) for jdrange in l_jdrange_names_unique: jdrangeDict[jdrange] = len(jdrangeDict) axisDict = {0: patDict, 1: jdrangeDict, 2: medDict} #df_MAP_CHANGE = df_MAP_CHANGE_finite[df_MAP_CHANGE_finite['RUID'].isin(l_patients_for_tensor)] df_MAP_CHANGE['MAP_CHANGE_GOOD'] = df_MAP_CHANGE['MEDIAN_MAP_CHANGE'] <= -2 df_MAP_CHANGE['MAP_CHANGE_GOOD'] = df_MAP_CHANGE['MAP_CHANGE_GOOD'].astype( 'int') df_MAP_CHANGE = df_MAP_CHANGE.sort(['RUID'], ascending=1) l_patClass_allpts = df_MAP_CHANGE['MAP_CHANGE_GOOD'] #patient classifications l_patClass_allfinitepts = list(df_MAP_CHANGE[df_MAP_CHANGE.RUID.isin( l_all_pts_with_MEDS_JDRANGE)]['MAP_CHANGE_GOOD']) od_patClass_for_tensor = OrderedDict( zip(patDict.keys(), l_patClass_allfinitepts)) #OrderedDict of patient classifications #save the tensor tensorIO.saveSingleTensor(sparse_tensor_all_finite, axisDict, od_patClass_for_tensor, "htn-allfinite-tensor-{0}.dat") # ############################################################################################################ ############################################################################################################ ############################################################################################################