def plot_weights(model_data): category_list = model_data[0][0] feature_list = model_data[0][1] hidden_size = model_data[1][2] h_x = model_data[2][0] y_h = model_data[2][1] h_labels = ['H0'] for i in range(hidden_size): h_labels.append("H" + str(i + 1)) h1 = heatmapcluster.heatmapcluster(y_h.transpose(), h_labels, category_list, label_fontsize=12, xlabel_rotation=0, cmap=plt.cm.coolwarm, show_colorbar=True, colorbar_pad=2, top_dendrogram=True) h2 = heatmapcluster.heatmapcluster(h_x, h_labels, feature_list, label_fontsize=12, xlabel_rotation=90, cmap=plt.cm.coolwarm, show_colorbar=True, colorbar_pad=2, top_dendrogram=True)
def plot_hierarchical_cluster(the_dataset, svd, similarity): print("\n Plotting Hierarchical Cluster Diagram") ok_to_go = False try: import heatmapcluster ok_to_go = True except: print( "Cannot import heatmapcluster. try running 'pip3 install heatmapcluster'" ) if svd: if the_dataset.svd_dimensions is None: print( "ERROR: Cannot make SVD heat map without specifying SVD dimensions" ) sys.exit() else: data_matrix = the_dataset.svd_row_features[:, :the_dataset. svd_dimensions] else: data_matrix = the_dataset.feature_matrix if ok_to_go: y_labels = the_dataset.word_list if similarity is not None: x_labels = the_dataset.word_list data = np.zeros([the_dataset.num_words, the_dataset.num_words]) for i in range(the_dataset.num_words): a = the_dataset.feature_matrix[i, :] for j in range(the_dataset.num_words): b = the_dataset.feature_matrix[j, :] data[i, j] = np.dot( a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) else: x_labels = the_dataset.feature_list data = data_matrix print(data_matrix.shape) h = heatmapcluster.heatmapcluster(data, y_labels, x_labels, label_fontsize=6, xlabel_rotation=90, cmap=plt.cm.coolwarm, show_colorbar=True, colorbar_pad=2, top_dendrogram=True) plt.show()
def calcCorMatrix(m, fn): cor = [[0 for x in xrange(len(m))] for y in xrange(len(m))] for i in xrange(len(m)): for j in xrange(len(m)): if m[i][0] != None and m[j][0] != None: cor[i][j] = pearsonr(m[i], m[j])[0] else: cor[i][j] = None fn = fn + ".csv" f = open(fn, 'w') strcor = str(cor)[1:-1].replace("], ", "\n").replace("[", "").replace("]", "") f.write(strcor) f.close() sp = ["MR", "R", "R2", "O", "I", "I2R2", "MY", "Y", "YIex"] ch = ["dPK", "dPKT", "dHRT", "dHFT"] names = list() for x in xrange(len(sp)): for y in xrange(len(ch)): names.append(sp[x] + ' ' + ch[y]) names.remove("MR dPKT") names.remove("MR dHRT") print(names) # names = list(reversed(names)) data = np.genfromtxt(fn, delimiter=",") clustersize = 12 h = heatmapcluster(data, names, names, num_row_clusters=clustersize, num_col_clusters=clustersize, label_fontsize=9, xlabel_rotation=-75, cmap=plt.cm.coolwarm, show_colorbar=True, top_dendrogram=True) plt.savefig("cor_heatmap.png")
def plot_weight_heat_map(self): ok_to_go = False try: import heatmapcluster ok_to_go = True except: print( "Cannot import heatmapcluster. try running 'pip install heatmapcluster'" ) if ok_to_go: h = heatmapcluster.heatmapcluster(self.y_x_weights.transpose(), self.dataset.feature_list, self.dataset.category_list, label_fontsize=12, xlabel_rotation=0, cmap=plt.cm.coolwarm, show_colorbar=True, colorbar_pad=2, top_dendrogram=True)
def plot_hierarchical_cluster(self, similarity=False): print("\n Plotting Hierarchical Cluster Diagram") ok_to_go = False try: import heatmapcluster ok_to_go = True except: print( "Cannot import heatmapcluster. try running 'pip install heatmapcluster'" ) if ok_to_go: x_labels = self.word_list y_labels = self.word_list if similarity: data = np.zeros([self.num_words, self.num_words]) for i in range(self.num_words): a = self.feature_matrix[i, :] for j in range(self.num_words): b = self.feature_matrix[j, :] data[i, j] = np.dot( a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) else: data = self.feature_matrix.transpose() x_labels = self.word_list y_labels = self.feature_list h = heatmapcluster.heatmapcluster(data, y_labels, x_labels, label_fontsize=6, xlabel_rotation=90, cmap=plt.cm.coolwarm, show_colorbar=True, colorbar_pad=2, top_dendrogram=True)
if seed is not None: np.random.seed(seed) s = np.random.gamma([7, 6, 5], [6, 8, 6], size=(size[1], 3)).T i = np.random.choice(range(len(s)), size=size[0]) x = s[i] t = np.random.gamma([8, 5, 6], [3, 3, 2.1], size=(size[0], 3)).T j = np.random.choice(range(len(t)), size=size[1]) x += 1.1*t[j].T x += 2*np.random.randn(*size) row_labels = [('R%02d' % k) for k in range(x.shape[0])] col_labels = [('C%02d' % k) for k in range(x.shape[1])] return x, row_labels, col_labels x, row_labels, col_labels = make_data(size=(64, 48), seed=123) h = heatmapcluster(x, row_labels, col_labels, num_row_clusters=3, num_col_clusters=0, label_fontsize=6, xlabel_rotation=-75, cmap=plt.cm.coolwarm, show_colorbar=True, top_dendrogram=True) plt.show()
def main(argv): try: opts, args = getopt.getopt(argv, "", ["file="]) except getopt.GetoptError: raise NameError("Invalid arguments. Call string should look like:\nportfolio_heatmap.py --file <path-to-folder>") for opt, arg in opts: if opt in ("--file"): file = arg else: print ("Option " + opt + " is not recognized") print ("permutation_folds.py --data-file <path-to-file> --outputdir <path-to-output-dir> --seed_range <begin,end>") sys.exit(2) maxValue=10000 #Cutoff?? with open(file, 'rU') as csvfile: lines = csv.DictReader(csvfile) values = [] vbsValues = [] for line in lines: row = [] vbsRow = [] minPerformance = 100000000 bestSolver = '' for col in line: if (float(line[col]) < minPerformance): minPerformance = float(line[col]) bestSolver = col row.append(float(line[col])) for col in line: if col == bestSolver: vbsRow.append(line[bestSolver]) else: vbsRow.append(maxValue) vbsValues.append(vbsRow) values.append(row) x_labels = list(xrange(len(values))) y_labels = list(xrange(len(values[0]))) # Maybe you want to normalize each row??? ''' log_transform = False if log_transform: mypyutils.pyplot.plotHeatMap(values,x_labels, y_labels,colormap=plt.cm.get_cmap('RdBu'),norm=matplotlib.colors.LogNorm()) else: mypyutils.pyplot.plotHeatMap(values,x_labels, y_labels,colormap=plt.cm.get_cmap('RdBu')) plt.xlabel("Hydra Iterations") plt.ylabel("Instances") plt.title("Hydra Portfolio Performance Heatmap") ax = plt.gca() cbar = plt.colorbar(orientation='vertical',pad=0.025,shrink=0.75,fraction=0.05) cbar.set_label('Performance', rotation=270,labelpad=15) cbar.ax.set_aspect(20) plt.show() plt.clf() log_transform = False if log_transform: mypyutils.pyplot.plotHeatMap(vbsValues,x_labels, y_labels,colormap=plt.cm.get_cmap('RdBu'),norm=matplotlib.colors.LogNorm()) else: mypyutils.pyplot.plotHeatMap(vbsValues,x_labels, y_labels,colormap=plt.cm.get_cmap('RdBu')) plt.xlabel("Hydra Iterations") plt.ylabel("Instances") plt.title("Hydra Portfolio Performance Heatmap") ax = plt.gca() cbar = plt.colorbar(orientation='vertical',pad=0.025,shrink=0.75,fraction=0.05) cbar.set_label('Performance', rotation=270,labelpad=15) cbar.ax.set_aspect(20) ''' np_values = np.array(values) h = heatmapcluster(np_values, x_labels, y_labels, num_row_clusters=3, num_col_clusters=0, label_fontsize=6, xlabel_rotation=-75, cmap=plt.cm.coolwarm, show_colorbar=True, top_dendrogram=False) plt.show() '''
j = np.random.choice(range(len(t)), size=size[1]) x += 1.1 * t[j].T x += 2 * np.random.randn(*size) row_labels = [('R%02d' % k) for k in range(x.shape[0])] col_labels = [('C%02d' % k) for k in range(x.shape[1])] return x, row_labels, col_labels x, row_labels, col_labels = make_data(size=(64, 48), seed=123) h = heatmapcluster( x, row_labels, col_labels, num_row_clusters=3, num_col_clusters=0, label_fontsize=6, xlabel_rotation=-75, cmap=plt.cm.coolwarm, show_colorbar=True, top_dendrogram=True, row_linkage=lambda x: linkage(x, method='average', metric='correlation'), col_linkage=lambda x: linkage(x.T, method='average', metric='correlation'), histogram=True) plt.show()
t = np.random.gamma([8, 5, 6], [3, 3, 2.1], size=(size[0], 3)).T j = np.random.choice(range(len(t)), size=size[1]) x += 1.1*t[j].T x += 2*np.random.randn(*size) row_labels = [('R%02d' % k) for k in range(x.shape[0])] col_labels = [('C%02d' % k) for k in range(x.shape[1])] return x, row_labels, col_labels x, row_labels, col_labels = make_data(size=(64, 48), seed=123) h = heatmapcluster(x, row_labels, col_labels, num_row_clusters=3, num_col_clusters=0, label_fontsize=6, xlabel_rotation=-75, cmap=plt.cm.coolwarm, show_colorbar=True, top_dendrogram=True, row_linkage=lambda x: linkage(x, method='average', metric='correlation'), col_linkage=lambda x: linkage(x.T, method='average', metric='correlation'), histogram=True) plt.show()