Exemplo n.º 1
0
def visualize_nn():
    x, y = DataUtil.gen_xor()
    nn = NNDist()
    nn.add("ReLU", (x.shape[1], 6))
    nn.add("ReLU", (6, ))
    nn.add("Softmax", (y.shape[1], ))
    nn.fit(x, y, epoch=1000, draw_detailed_network=True)
Exemplo n.º 2
0
def visualize_nn():
    x, y = DataUtil.gen_xor()
    nn = NNDist()
    nn.add("ReLU", (x.shape[1], 6))
    nn.add("ReLU", (6,))
    nn.add("Softmax", (y.shape[1],))
    nn.fit(x, y, epoch=1000, draw_detailed_network=True)
Exemplo n.º 3
0
def main():

    nn = NNDist()
    epoch = 1000

    x, y = DataUtil.gen_xor(100)

    nn.add(ReLU((x.shape[1], 24)))
    nn.add(CrossEntropy((y.shape[1], )))

    nn.fit(x, y, epoch=epoch)
    nn.evaluate(x, y)
Exemplo n.º 4
0
def main():

    nn = NNDist()
    epoch = 1000

    x, y = DataUtil.gen_xor(100)

    nn.add(ReLU((x.shape[1], 24)))
    nn.add(CrossEntropy((y.shape[1],)))

    nn.fit(x, y, epoch=epoch)
    nn.evaluate(x, y)
Exemplo n.º 5
0
def main():
    nn = NNDist()
    save = False
    load = False

    lr = 0.001
    lb = 0.001
    epoch = 1000

    timing = Timing(enabled=True)
    timing_level = 1

    x, y = DataUtil.gen_xor()

    if not load:
        nn.add("ReLU", (x.shape[1], 2))
        nn.add("ReLU", (3, ))
        nn.add("ReLU", (3, ))
        nn.add("CrossEntropy", (y.shape[1], ))
        nn.optimizer = "Adam"
        nn.preview()
        nn.feed_timing(timing)
        nn.fit(x,
               y,
               lr=lr,
               lb=lb,
               verbose=1,
               epoch=epoch,
               batch_size=128,
               train_only=True,
               draw_detailed_network=True)
        if save:
            nn.save()
        nn.draw_results()
        nn.visualize2d()
    else:
        nn.load()
        nn.preview()
        nn.evaluate(x, y)

    timing.show_timing_log(timing_level)
Exemplo n.º 6
0
def main(visualize=True):
    # x, y = DataUtil.get_dataset("balloon1.0(en)", "../_Data/balloon1.0(en).txt")
    x, y = DataUtil.get_dataset(
        "test", "/Users/lily/Documents/MachineLearning-master/_Data/test.txt")
    fit_time = time.time()
    tree = CartTree(whether_continuous=[False] * 4)
    tree.fit(x, y, train_only=True)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x, y)
    estimate_time = time.time() - estimate_time
    print("Model building  : {:12.6} s\n"
          "Estimation      : {:12.6} s\n"
          "Total           : {:12.6} s".format(fit_time, estimate_time,
                                               fit_time + estimate_time))
    if visualize:
        tree.visualize()

    train_num = 6000
    (x_train, y_train), (x_test, y_test), *_ = DataUtil.get_dataset(
        "mushroom",
        "/Users/lily/Documents/MachineLearning-master/_Data/mushroom.txt",
        tar_idx=0,
        train_num=train_num)
    fit_time = time.time()
    tree = C45Tree()
    tree.fit(x_train, y_train)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x_train, y_train)
    tree.evaluate(x_test, y_test)
    estimate_time = time.time() - estimate_time
    print("Model building  : {:12.6} s\n"
          "Estimation      : {:12.6} s\n"
          "Total           : {:12.6} s".format(fit_time, estimate_time,
                                               fit_time + estimate_time))
    if visualize:
        tree.visualize()

    x, y = DataUtil.gen_xor(one_hot=False)
    fit_time = time.time()
    tree = CartTree()
    tree.fit(x, y, train_only=True)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x, y, n_cores=1)
    estimate_time = time.time() - estimate_time
    print("Model building  : {:12.6} s\n"
          "Estimation      : {:12.6} s\n"
          "Total           : {:12.6} s".format(fit_time, estimate_time,
                                               fit_time + estimate_time))
    if visualize:
        tree.visualize2d(x, y, dense=1000)
        tree.visualize()

    wc = [False] * 16
    continuous_lst = [0, 5, 9, 11, 12, 13, 14]
    for _cl in continuous_lst:
        wc[_cl] = True

    train_num = 2000
    (x_train, y_train), (x_test, y_test), *_ = DataUtil.get_dataset(
        "bank1.0",
        "/Users/lily/Documents/MachineLearning-master/_Data/bank1.0.txt",
        train_num=train_num,
        quantize=True)
    fit_time = time.time()
    tree = CartTree()
    tree.fit(x_train, y_train)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x_test, y_test)
    estimate_time = time.time() - estimate_time
    print("Model building  : {:12.6} s\n"
          "Estimation      : {:12.6} s\n"
          "Total           : {:12.6} s".format(fit_time, estimate_time,
                                               fit_time + estimate_time))
    if visualize:
        tree.visualize()

    tree.show_timing_log()
Exemplo n.º 7
0
    def fit(self, x, y, n_hidden=None, use_scipy=None):
        if n_hidden is None:
            n_hidden = self._params["n_hidden"]
        if use_scipy is None:
            use_scipy = self._params["use_scipy"]
        self._func_cache = self._func(x, y, n_hidden)
        if not use_scipy:
            line_search = None if self._line_search is None else self._line_search(self._func_cache)
            self._opt_cache = self._opt(self._func_cache, line_search)
        else:
            self._opt_cache = ScipyOpt(self._func_cache)
        self._opt_cache.opt()
        self._mat1, self._mat2 = self._func_cache.mat1, self._func_cache.mat2

    def predict(self, x, get_raw_results=False, **kwargs):
        y_raw = np.maximum(0, np.atleast_2d(x).dot(self._mat1)).dot(self._mat2)
        y_pred = 1 / (1 + np.exp(-y_raw))  # type: np.ndarray
        if get_raw_results:
            return y_pred
        return np.argmax(y_pred, axis=1)

data, labels = DataUtil.gen_xor()
nn = NN(GradientDescent, Wolfe)
nn.fit(data, labels)
nn.evaluate(data, labels)
nn.visualize2d(data, labels)
# Draw Training Curve
plt.figure()
plt.plot(np.arange(len(nn["opt_cache"].log))+1, nn["opt_cache"].log)
plt.show()
Exemplo n.º 8
0
def main():
    # _x, _y = DataUtil.get_dataset("balloon1.0(en)", "../_Data/balloon1.0(en).txt")
    _x, _y = DataUtil.get_dataset("test", "../_Data/test.txt")
    _fit_time = time.time()
    _tree = CartTree(whether_continuous=[False] * 4)
    _tree.fit(_x, _y, train_only=True)
    _fit_time = time.time() - _fit_time
    _tree.view()
    _estimate_time = time.time()
    _tree.estimate(_x, _y)
    _estimate_time = time.time() - _estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            _fit_time, _estimate_time,
            _fit_time + _estimate_time
        )
    )
    _tree.visualize()

    train_num = 6000
    (x_train, y_train), (x_test, y_test), *_ = DataUtil.get_dataset(
        "mushroom", "../_Data/mushroom.txt", tar_idx=0, train_num=train_num)
    _fit_time = time.time()
    _tree = C45Tree()
    _tree.fit(x_train, y_train)
    _fit_time = time.time() - _fit_time
    _tree.view()
    _estimate_time = time.time()
    _tree.estimate(x_train, y_train)
    _tree.estimate(x_test, y_test)
    _estimate_time = time.time() - _estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            _fit_time, _estimate_time,
            _fit_time + _estimate_time
        )
    )
    _tree.visualize()

    _x, _y = DataUtil.gen_xor(one_hot=False)
    _fit_time = time.time()
    _tree = CartTree()
    _tree.fit(_x, _y, train_only=True)
    _fit_time = time.time() - _fit_time
    _tree.view()
    _estimate_time = time.time()
    _tree.estimate(_x, _y)
    _estimate_time = time.time() - _estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            _fit_time, _estimate_time,
            _fit_time + _estimate_time
        )
    )
    _tree.visualize2d(_x, _y)
    _tree.visualize()

    _wc = [False] * 16
    _continuous_lst = [0, 5, 9, 11, 12, 13, 14]
    for _cl in _continuous_lst:
        _wc[_cl] = True

    train_num = 2000
    (x_train, y_train), (x_test, y_test), *_ = DataUtil.get_dataset(
        "bank1.0", "../_Data/bank1.0.txt", train_num=train_num, quantize=True)
    _fit_time = time.time()
    _tree = CartTree()
    _tree.fit(x_train, y_train)
    _fit_time = time.time() - _fit_time
    _tree.view()
    _estimate_time = time.time()
    _tree.estimate(x_test, y_test)
    _estimate_time = time.time() - _estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            _fit_time, _estimate_time,
            _fit_time + _estimate_time
        )
    )
    _tree.visualize()

    _tree.show_timing_log()
Exemplo n.º 9
0
    def fit(self, x, y, n_hidden=None, use_scipy=None):
        if n_hidden is None:
            n_hidden = self._params["n_hidden"]
        if use_scipy is None:
            use_scipy = self._params["use_scipy"]
        self._func_cache = self._func(x, y, n_hidden)
        if not use_scipy:
            line_search = None if self._line_search is None else self._line_search(self._func_cache)
            self._opt_cache = self._opt(self._func_cache, line_search)
        else:
            self._opt_cache = ScipyOpt(self._func_cache)
        self._opt_cache.opt()
        self._mat1, self._mat2 = self._func_cache.mat1, self._func_cache.mat2

    def predict(self, x, get_raw_results=False):
        y_raw = np.maximum(0, np.atleast_2d(x).dot(self._mat1)).dot(self._mat2)
        y_pred = 1 / (1 + np.exp(-y_raw))  # type: np.ndarray
        if get_raw_results:
            return y_pred
        return np.argmax(y_pred, axis=1)

data, labels = DataUtil.gen_xor()
nn = NN(GradientDescent, Wolfe)
nn.fit(data, labels)
nn.evaluate(data, labels)
nn.visualize2d(data, labels)
# Draw Training Curve
plt.figure()
plt.plot(np.arange(len(nn["opt_cache"].log))+1, nn["opt_cache"].log)
plt.show()
Exemplo n.º 10
0
def main(visualize=True):
    # x, y = DataUtil.get_dataset("balloon1.0(en)", "../_Data/balloon1.0(en).txt")
    x, y = DataUtil.get_dataset("test", "../_Data/test.txt")
    fit_time = time.time()
    tree = CartTree(whether_continuous=[False] * 4)
    tree.fit(x, y, train_only=True)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x, y)
    estimate_time = time.time() - estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            fit_time, estimate_time,
            fit_time + estimate_time
        )
    )
    if visualize:
        tree.visualize()

    train_num = 6000
    (x_train, y_train), (x_test, y_test), *_ = DataUtil.get_dataset(
        "mushroom", "../_Data/mushroom.txt", tar_idx=0, n_train=train_num)
    fit_time = time.time()
    tree = C45Tree()
    tree.fit(x_train, y_train)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x_train, y_train)
    tree.evaluate(x_test, y_test)
    estimate_time = time.time() - estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            fit_time, estimate_time,
            fit_time + estimate_time
        )
    )
    if visualize:
        tree.visualize()

    x, y = DataUtil.gen_xor(one_hot=False)
    fit_time = time.time()
    tree = CartTree()
    tree.fit(x, y, train_only=True)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x, y, n_cores=1)
    estimate_time = time.time() - estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            fit_time, estimate_time,
            fit_time + estimate_time
        )
    )
    if visualize:
        tree.visualize2d(x, y, dense=1000)
        tree.visualize()

    wc = [False] * 16
    continuous_lst = [0, 5, 9, 11, 12, 13, 14]
    for _cl in continuous_lst:
        wc[_cl] = True

    train_num = 2000
    (x_train, y_train), (x_test, y_test), *_ = DataUtil.get_dataset(
        "bank1.0", "../_Data/bank1.0.txt", n_train=train_num, quantize=True)
    fit_time = time.time()
    tree = CartTree()
    tree.fit(x_train, y_train)
    fit_time = time.time() - fit_time
    if visualize:
        tree.view()
    estimate_time = time.time()
    tree.evaluate(x_test, y_test)
    estimate_time = time.time() - estimate_time
    print(
        "Model building  : {:12.6} s\n"
        "Estimation      : {:12.6} s\n"
        "Total           : {:12.6} s".format(
            fit_time, estimate_time,
            fit_time + estimate_time
        )
    )
    if visualize:
        tree.visualize()

    tree.show_timing_log()