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)
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)
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)
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)
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)
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()
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()
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()
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()
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()