Exemplo n.º 1
0
dataset_name = args.dataset

if dataset_name == 'mnist' or dataset_name == 'iris' or dataset_name == '20news':
    np.random.seed(0)
    idx = np.random.permutation(xrange(X.shape[0]))[:args.subset]
    X = X[idx]
    y = y[idx]
if dataset_name == 'mnist' or dataset_name == '20news':
    pca = PCA(10)
    X = pca.fit_transform(X)
if dataset_name == 'zoo':
    # pca = PCA(10)
    # X = pca.fit_transform(X)
    X += np.random.normal(size=X.shape) * 0.01

master_tree = make_master(X, y, args.dataset)
N, D = X.shape

C = pdist(X)

def make_tree(X, C, method='single'):
    if method == 'single':
        tree = to_tree(single(C))
    elif method == 'ward':
        tree = to_tree(ward(X))
    elif method == 'average':
        tree = to_tree(average(C))
    return Tree(root=construct_node(tree))

def construct_node(snode):
    if snode.left is None and snode.right is None:
Exemplo n.º 2
0
    X, y = dataset.X, dataset.y

    if dataset_name == 'mnist' or dataset_name == 'iris' or dataset_name == '20news':
        np.random.seed(0)
        idx = np.random.permutation(xrange(X.shape[0]))[:args.subset]
        X = X[idx]
        y = y[idx]
    if dataset_name == 'mnist' or dataset_name == '20news':
        pca = PCA(10)
        X = pca.fit_transform(X)
    if dataset_name == 'zoo':
        # pca = PCA(5)
        # X = pca.fit_transform(X)
        X += np.random.normal(size=X.shape) * 0.01

    master_tree = make_master(X, y, dataset_name)

    experiments = [('ddt', None),
                   ('tr',
                    TotallyRandom(master_tree,
                                  y,
                                  classification=dataset_name != 'zoo')),
                   ('str',
                    StupidRandom(master_tree,
                                 y,
                                 K=10,
                                 classification=dataset_name != 'zoo')),
                   ('sr',
                    SmartRandom(master_tree,
                                y,
                                classification=dataset_name != 'zoo')),
Exemplo n.º 3
0
    X, y = dataset.X, dataset.y

    if dataset_name == 'mnist' or dataset_name == 'iris' or dataset_name == '20news':
        np.random.seed(0)
        idx = np.random.permutation(xrange(X.shape[0]))[:args.subset]
        X = X[idx]
        y = y[idx]
    if dataset_name == 'mnist' or dataset_name == '20news':
        pca = PCA(10)
        X = pca.fit_transform(X)
    if dataset_name == 'zoo':
        # pca = PCA(5)
        # X = pca.fit_transform(X)
        X += np.random.normal(size=X.shape) * 0.01

    master_tree = make_master(X, y, dataset_name)

    experiments = [('ddt', None),
                   ('tr', TotallyRandom(master_tree, y, classification=dataset_name != 'zoo')),
                   ('str', StupidRandom(master_tree, y, K=10, classification=dataset_name != 'zoo')),
                   ('sr', SmartRandom(master_tree, y, classification=dataset_name != 'zoo')),
                   ('var', Variance(master_tree, y, N=20, K=10, classification=dataset_name != 'zoo')),
                   ('hybrid', Hybrid(master_tree, y, N=20, K=10, classification=dataset_name != 'zoo'))
                   ]

    # plt.figure()
    overall_cost, overall_score = [], []
    samplers = []
    for name, type in experiments:
        logging.info("Running %s", name)
        costs, scores, sampler = run_experiment(args.i, dataset_name, name, type, master_tree, X, y, out_dir,
Exemplo n.º 4
0
dataset_name = args.dataset

if dataset_name == 'mnist' or dataset_name == 'iris' or dataset_name == '20news':
    np.random.seed(0)
    idx = np.random.permutation(xrange(X.shape[0]))[:args.subset]
    X = X[idx]
    y = y[idx]
if dataset_name == 'mnist' or dataset_name == '20news':
    pca = PCA(10)
    X = pca.fit_transform(X)
if dataset_name == 'zoo':
    # pca = PCA(10)
    # X = pca.fit_transform(X)
    X += np.random.normal(size=X.shape) * 0.01

master_tree = make_master(X, y, args.dataset)
N, D = X.shape

C = pdist(X)


def make_tree(X, C, method='single'):
    if method == 'single':
        tree = to_tree(single(C))
    elif method == 'ward':
        tree = to_tree(ward(X))
    elif method == 'average':
        tree = to_tree(average(C))
    return Tree(root=construct_node(tree))