def project_exp(points, max_projection, expname, average_neighbors, ptype, exptype): write_header(expname) global max_iter global min_cost global totalRun max_iter = 100 for projections in tqdm(range(1, max_projection)): costs = [] cost_success = [] timeRec = [] iterations = [] successcount = [0, 0] successtimeandcost = [] successtimeandcost.append([]) successtimeandcost.append([]) diss = mview.DISS(points) #start method to generate dissimilarities diss.add_projections( attributes=projections, Q=ptype ) #specify that you want attribute_number attributes generated from physical 3D-2D example, using cylinder projections Q = diss.Q #recover projection parameters to use along mview.basic (if using fixed projections, otherwise unnecessary) if exptype == 'fixed': Q = Q else: Q = None for i in range(0, totalRun): #DD = {'nodes' : points, 'attributes' : projections} mv = mview.basic(diss, Q=Q, average_neighbors=average_neighbors, max_iter=max_iter) costs.append(mv.cost) timeRec.append(mv.time) iterations.append(mv.H['iterations']) if abs(max_iter - mv.H['iterations']) < 2: successcount[1] = successcount[1] + 1 else: successcount[0] = successcount[0] + 1 successtimeandcost[0].append(mv.time) successtimeandcost[1].append(mv.cost) process_runs(expname, points, average_neighbors, ptype, successcount, timeRec, costs, iterations, successtimeandcost, projections)
def points_exp(max_points, expname, average_neighbors, projection): write_header(expname) global max_iter global min_cost global totalRun max_iter = 100 step = 100 T = int(max_points / step) + 1 for n in range(1, T): points = n * step costs = [] cost_success = [] timeRec = [] iterations = [] successcount = [0, 0] successtimeandcost = [] successtimeandcost.append([]) successtimeandcost.append([]) D = get_D_3projections(points) for i in range(0, 10): mv = mview.basic(D, Q=projection, average_neighbors=average_neighbors, max_iter=max_iter) costs.append(mv.cost) timeRec.append(mv.time) iterations.append(mv.H['iterations']) if abs(max_iter - mv.H['iterations']) < 2: successcount[1] = successcount[1] + 1 else: successcount[0] = successcount[0] + 1 successtimeandcost[0].append(mv.time) successtimeandcost[1].append(mv.cost) process_runs(expname, points, average_neighbors, projection, successcount, timeRec, costs, iterations, successtimeandcost, len(mv.Q))
def neighbor_exp(points, max_neighbors, expname, projections): write_header(expname) global max_iter global min_cost global totalRun for ne in range(0, int(np.log2(max_neighbors))): average_neighbors = 2**ne costs = [] cost_success = [] timeRec = [] iterations = [] successcount = [0, 0] successtimeandcost = [] successtimeandcost.append([]) successtimeandcost.append([]) for i in range(0, 10): D = get_D_3projections(points) mv = mview.basic(D, Q=projections, average_neighbors=average_neighbors, max_iter=max_iter, min_cost=min_cost, estimate=False) costs.append(mv.cost) timeRec.append(mv.time) iterations.append(mv.H['iterations']) if abs(max_iter - mv.H['iterations']) < 2: successcount[1] = successcount[1] + 1 else: successcount[0] = successcount[0] + 1 successtimeandcost[0].append(mv.time) successtimeandcost[1].append(mv.cost) process_runs(expname, points, average_neighbors, projections, successcount, timeRec, costs, iterations, successtimeandcost, len(mv.Q))
def get_MPSE(labels): labels = pd.read_csv("label.csv")['label'].values p = pd.read_csv("tsne.csv") p = p[['x', 'y']] d1 = distance_matrix(p.values, p.values) p = pd.read_csv("umap.csv") p = p[['x', 'y']] d2 = distance_matrix(p.values, p.values) # p=pd.read_csv("mds.csv").values # d3=distance_matrix(p,p) mv = mview.basic([d1, d2], Q="standard", average_neighbors=2, max_iter=500, verbose=2) data = np.vstack((mv.X.T, labels.T)).T df = pd.DataFrame(data=data, columns=("x", "y", "z", "label")) draw_plot(df[["x", "y", "label"]], 'x', 'y', 'label', "1") draw_plot(df[["y", "z", "label"]], 'y', 'z', 'label', "2") draw_plot(df[["z", "x", "label"]], 'z', 'x', 'label', "3") return mv.X
print( "Please provide either -d ( distace matices) or -ds (preloaded dataset)" ) exit(1) print("<h1>Please keep the window running</h1>") D = get_matrix(args) args.projection_type = None if args.projection_type == 'variable' else args.projection_type # import pdb; pdb.set_trace() if args.X0 == "True": args.X0 = True else: args.X0 = False # mv = mview.basic(D,visualization_method = 'tsne', Q=args.projection_type, verbose=2, smart_initialize=args.X0, # max_iter=args.max_iters, average_neighbors=args.average_neighbors, min_cost=args.min_cost) mv = mview.basic(D, verbose=2, visualization_args={'perplexity': 100}, max_iters=200, visualization_method='tsne') # mv = mview.basic(D, verbose=2, max_iters=200) mv.plot_computations() # mv.plot_images() # write_output(mv, args)
parser.add_argument('-pcolor', '--pcolor', default='red', help="vis: poing color", required=False) args = parser.parse_args() if args.preloaded_dataset == None and args.d == None: print( "Please provide either -d ( distace matices) or -ds (preloaded dataset)" ) exit(1) print("<h1>Please keep the window running</h1>") D = get_matrix(args) args.projection_type = None if args.projection_type == 'variable' else args.projection_type if args.X0 == "True": args.X0 = True else: args.X0 = False mv = mview.basic(D, Q=args.projection_type, verbose=2, smart_initialize=args.X0, max_iter=args.max_iters, average_neighbors=args.average_neighbors, min_cost=args.min_cost) write_output(mv, args)