Exemplo n.º 1
0
 def log(self, msg, color=None):
     if color is None:
         if self.verbose:
             logger.info(msg)
     else:
         logger.info(colored("{}".format(msg), color))
Exemplo n.º 2
0
                      output_size=N_HIDDENS,
                      learning_rate=0.01,
                      max_depth=3,
                      num_boost_round=50)
    G = MultiXGBModel(input_size=N_HIDDENS,
                      output_size=3,
                      learning_rate=0.01,
                      max_depth=3,
                      num_boost_round=50)
    Ginv = MultiXGBModel(input_size=3,
                         output_size=N_HIDDENS,
                         learning_rate=0.01,
                         max_depth=3,
                         num_boost_round=50)
    net = MGBDTAntoEncoder(F, G, Ginv, target_lr=0.05, epsilon=0.3)
    logger.info("net architecture")
    logger.info(net)

    net.init(X, n_rounds=50)
    # net.init(X, n_rounds=5)
    net.fit(X, X, n_epochs=100)

    hiddens = net.get_hiddens(X)
    for i in range(0, N_HIDDENS):
        for j in range(i + 1, N_HIDDENS):
            des_path = osp.join(des_dir,
                                "pred1.{}_{}.jpg".format(i + 1, j + 1))
            plot2d(hiddens[1][:, [i, j]], color=color, save_path=des_path)
    save_path = osp.join(des_dir, "pred2.jpg")
    plot3d(hiddens[2], color=color, save_path=save_path)
Exemplo n.º 3
0
                                  learning_rate=0.1,
                                  max_depth=5,
                                  num_boost_round=5))
    net.add_layer("tp_layer",
                  F=MultiXGBModel(input_size=3,
                                  output_size=2,
                                  learning_rate=0.1,
                                  max_depth=5,
                                  num_boost_round=5),
                  G=MultiXGBModel(input_size=2,
                                  output_size=3,
                                  learning_rate=0.1,
                                  max_depth=5,
                                  num_boost_round=5))

    logger.info(net)
    net.init(x_train, n_rounds=5)
    net.fit(x_train,
            y_train,
            n_epochs=50,
            eval_sets=[(x_test, y_test)],
            eval_metric="accuracy")

    colors = np.asarray(["red", "blue"])
    # save the input dataset
    save_path = osp.join(des_dir, "input.jpg")
    plot2d(x_test, color=colors[y_test], save_path=save_path)

    # save the hidden output
    save_path = osp.join(des_dir, "pred2.jpg")
    hiddens = net.get_hiddens(x_test)
Exemplo n.º 4
0
import sys
sys.path.insert(0, "lib")

from mgbdt import MGBDT
from mgbdt import MultiXGBModel, LinearModel
from mgbdt.datasets import uci_adult
from mgbdt.utils.exp_utils import set_seed
from mgbdt.utils.log_utils import logger

if __name__ == "__main__":
    set_seed(666)

    (x_train, y_train), (x_test, y_test) = uci_adult.load_data()
    logger.info("x_train.shape={}, y_train.shape={}".format(
        x_train.shape, y_train.shape))
    logger.info("x_test.shape={}, y_test.shape={}".format(
        x_test.shape, y_test.shape))

    net = MGBDT(loss=None, target_lr=1.0, epsilon=0.3)
    net.add_layer("tp_layer",
                  F=MultiXGBModel(input_size=113,
                                  output_size=128,
                                  learning_rate=0.3,
                                  max_depth=5,
                                  num_boost_round=5),
                  G=None)
    net.add_layer("tp_layer",
                  F=MultiXGBModel(input_size=128,
                                  output_size=128,
                                  learning_rate=0.3,
                                  max_depth=5,
Exemplo n.º 5
0
    parser.add_argument("--n_layers", dest="n_layers", default=3, type=int)
    args = parser.parse_args()
    return args


if __name__ == "__main__":
    args = parse_args()
    n_layers = args.n_layers
    set_seed(0)

    X, y = uci_yeast.load_data()
    n_splits = 10
    skf = StratifiedKFold(n_splits=n_splits, random_state=0, shuffle=True)
    accs = []
    for ci, (train_index, test_index) in enumerate(skf.split(X, y)):
        logger.info("[progress] cv={}/{}".format(ci + 1, n_splits))
        x_train, x_test = X[train_index], X[test_index]
        y_train, y_test = y[train_index], y[test_index]
        logger.info("x_train.shape={}, y_train.shape={}".format(
            x_train.shape, y_train.shape))
        logger.info("x_test.shape={}, y_test.shape={}".format(
            x_test.shape, y_test.shape))

        net = MGBDT(loss=None, target_lr=1.0, epsilon=0.3)
        net.add_layer("tp_layer",
                      F=MultiXGBModel(input_size=8,
                                      output_size=16,
                                      learning_rate=0.1,
                                      max_depth=5,
                                      num_boost_round=5),
                      G=None)