def cluster_structs(vecs, ctype = 'mlpy', k = None): ''' Return a list of cluster memberships in the form of an N-array having k unique elements. ''' if ctype == 'hcluster': return hcluster.fclusterdata(vecs,1.1,criterion='inconsistent',method = 'complete' ) elif ctype == 'mlpy': import mlpy HC = mlpy.HCluster(method='euclidean', link='complete') clusts = HC.compute(vecs ) cut = HC.cut(HC.heights[-k]) return cut else: raise Exception()
def get_clusters(aanTimbres): #linkage was example ... output didnt make sense to me. #return linkage(aanTimbres, method='complete') #was thinking, each instrument by each note maybe, but whatever return fclusterdata(aanTimbres, 50, criterion='maxclust')
def view3(): files = [l for l in os.listdir(cfg.dataPath("batch/tmp")) if "mcmc" in l] fpaths = [os.path.join(cfg.dataPath("batch/tmp"), f) for f in files] ids = [l[0:10] for l in files] inps = [butils.load_data(i, "input") for i in ids] idxs_good = nonzero(greater([elt.get("out_iter_num") for elt in inps], 2))[0] inps = [inps[i] for i in idxs_good] fpaths = [fpaths[i] for i in idxs_good] fig = myplots.fignum(3, (35, 15)) ax = fig.add_axes([0, 0, 1, 1]) for f, inp in zip(fpaths, inps): if inp["out_iter_num"] == 2: continue print inp["filename"] data = sio.loadmat(f) import compbio.utils.colors as mycolors ct = mycolors.getct(len(data["gene_names"])) term_list = [list(it.chain(*mod)) for mod in data["model"]] fac_list = [list(it.chain(*t)) for t in term_list] xvals, yvals, colors, rads = [], [], [], [] for i, terms in enumerate(term_list): for j, term in enumerate(terms): for k, fact in enumerate(term): xvals.extend([i] * len(term)) yvals.extend([fact] * len(term)) colors.extend([ct[c] for c in sorted(term)]) rads.extend(((arange(1, len(term) + 1) ** 2) * 50)[::-1]) vecs = zeros((len(fac_list), len(fac_list))) for i, fl in enumerate(fac_list): for f in fl: vecs[i, f] = 1 # plt.imshow(vecs) # ax1 = fig.add_subplot(121) # ax2 = fig.add_subplot(122) import hcluster clusters = hcluster.fclusterdata(vecs, 1.1, criterion="inconsistent", method="complete") # ax1.imshow(vecs) # ax2.imshow(vecs[argsort(clusters)]) # raise Exception() csrt = argsort(argsort(clusters)) xvals2 = [csrt[x] for x in xvals] # raise Exception() plt.scatter(xvals2, yvals, rads, color=colors) raise Exception() raise Exception()