예제 #1
0
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)
예제 #2
0
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))
예제 #3
0
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))
예제 #4
0
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
예제 #5
0
        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)
예제 #6
0
파일: mpse.py 프로젝트: rahatzamancse/MPSE
    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)