Example #1
0
best_lambda = 1000.
best_thresh = 0.5
best_eta = 0.000251188643151
eps = 1.0e-2
seed = 42
frac = 0.1
num = 6
lammax = 1000.0
scale = 10.0
sparse = False

# Load in MNIST training data, set 2s -> 1, others -> 0
print("Loading MNIST Training data...")
X_train, y_train = mu.load_mnist(dataset='training')

y_train_true = mu.mnist_filter(y_train, filterby=2)
print("True number of twos in training set:",np.sum(y_train_true))

# Load in MNIST training data, set 2s -> 1, others -> 0
print("Loading MNIST Testing data...")
X_test, y_test = mu.load_mnist(dataset='testing')
y_test_true = mu.mnist_filter(y_test, filterby=2)

# Build regularized binary classifier by minimizing 01 loss
# Will need to optimize over lambda and eta via a regularization path
if find_best_lam:
    print("Running regularization path to optmize lambda, eta...")

    # Split training data into subtraining set, validation set
    X_tr, y_tr, X_val, y_val = val.split_data(X_train, y_train, frac=frac, seed=seed)
Example #2
0
    kwargs = {}

    # Fit for 4s
    # Perform grid search to find best regularization constant and threshold?
    if find_best_lam:
        print("Finding optimal lambda and threshold via regularization path.")

        thresh_arr = np.linspace(-0.2,1.,num)
        err_val = np.zeros((num,num))
        err_train = np.zeros((num,num))

        # Split training data into subtraining set, validation set
        X_tr, y_tr, X_val, y_val = val.split_data(X_train, y_train, frac=frac, seed=seed)

        # Filter y values to 0, 1 labels
        y_tr_true = mu.mnist_filter(y_tr,filterby=3)
        y_val_true = mu.mnist_filter(y_val,filterby=3)

        # Loop over thresholds
        for i in range(num):
            # Internally loop over lambdas in regularization path
            err_val[i,:], err_train[i,:], lams = val.linear_reg_path(X_tr, y_tr_true, X_val,
            														 y_val_true, ri.fit_ridge,
            														 lammax=lammax,
            														 scale=scale,
																	 num=num, error_func=val.loss_01,
																	 thresh=thresh_arr[i], **kwargs)

        # Find minimum threshold, lambda from minimum validation error
        ind_t,ind_l = np.unravel_index(err_val.argmin(), err_val.shape)
        best_lambda = lams[ind_l]
Example #3
0
    # Perform grid search to find best regularization constant and threshold?
    if find_best_lam:
        print("Finding optimal lambda and threshold via regularization path.")

        thresh_arr = np.linspace(-0.2, 1., num)
        err_val = np.zeros((num, num))
        err_train = np.zeros((num, num))

        # Split training data into subtraining set, validation set
        X_tr, y_tr, X_val, y_val = val.split_data(X_train,
                                                  y_train,
                                                  frac=frac,
                                                  seed=seed)

        # Filter y values to 0, 1 labels
        y_tr_true = mu.mnist_filter(y_tr, filterby=3)
        y_val_true = mu.mnist_filter(y_val, filterby=3)

        # Loop over thresholds
        for i in range(num):
            # Internally loop over lambdas in regularization path
            err_val[i, :], err_train[i, :], lams = val.linear_reg_path(
                X_tr,
                y_tr_true,
                X_val,
                y_val_true,
                ri.fit_ridge,
                lammax=lammax,
                scale=scale,
                num=num,
                error_func=val.loss_01,
Example #4
0
best_lambda = 1000.
best_thresh = 0.5
best_eta = 0.000251188643151
eps = 1.0e-2
seed = 42
frac = 0.1
num = 6
lammax = 1000.0
scale = 10.0
sparse = False

# Load in MNIST training data, set 2s -> 1, others -> 0
print("Loading MNIST Training data...")
X_train, y_train = mu.load_mnist(dataset='training')

y_train_true = mu.mnist_filter(y_train, filterby=2)
print("True number of twos in training set:", np.sum(y_train_true))

# Load in MNIST training data, set 2s -> 1, others -> 0
print("Loading MNIST Testing data...")
X_test, y_test = mu.load_mnist(dataset='testing')
y_test_true = mu.mnist_filter(y_test, filterby=2)

# Build regularized binary classifier by minimizing 01 loss
# Will need to optimize over lambda and eta via a regularization path
if find_best_lam:
    print("Running regularization path to optmize lambda, eta...")

    # Split training data into subtraining set, validation set
    X_tr, y_tr, X_val, y_val = val.split_data(X_train,
                                              y_train,