saved_indexes = []
        active_set = 0
        countIter = 4
    if len(saved_indexes) > 0:
        if countIter == 5:
            lasso_cv.fit(x_train_saved, YTrain_)
            best_alpha = lasso_cv.alpha_
            print(best_alpha)
            countIter = 0
        model = linear_model.Lasso(fit_intercept=False, alpha=best_alpha)
        flag_linear = 0
    else:
        model = linear_model.LinearRegression(fit_intercept=False)
        flag_linear = 1
    blocks_generated, active_set, num_blocks = generate_samples_dynamic_set(num_blocks, n_features_transf, r,
                                                                            saved_indexes, r1, min_set, max_set,
                                                                            active_set, max_active_set)

    for i in range(0, num_blocks):
        x_train_i, x_val_i = get_current_data(XTrain_, XVal_, blocks_generated[i, :])
        rand_vect = r1.choice(n_samples_val, active_set_samples, replace=False)
        x_val_i = x_val_i[rand_vect, :]
        YVal_i = YVal_[rand_vect]
        new_loss, beta = compute_mse(model, x_train_i, YTrain_, x_val_i, YVal_i, score, values_TM)
        losses.append(new_loss)
        betas.append(beta)

    ordered_losses = np.argsort(losses)
    orderd_losses_ = np.array(losses)[ordered_losses]

    standard_deviation = np.std(orderd_losses_)
Ejemplo n.º 2
0
linearRegression = linear_model.LinearRegression(fit_intercept=False, n_jobs = -1)
mse,_,_ = compute_mse(linearRegression, XTrain, YTrain,XTest,YTest)
print("start_mse", mse)
weights_indexes = np.zeros(n_features)
index = 1000
deleted_indexes = np.where(del_indexes>index)[0]
iter = 0
r3 = np.random.RandomState(14)

while len(saved_indexes)<=final_active_set-len(deleted_indexes):
    losses = np.array([])
    betas = np.array([])
    coeffs = np.array([])
    corrs = np.array([])

    blocks_generated = generate_samples_dynamic_set(num_blocks, n_features, r,saved_indexes,r1, deleted_indexes)
    for i in range(0, num_blocks):
        x_train_i, x_test_i = get_current_data(XTrain, XTest, blocks_generated[i,:])
        rand_vect = r1.choice(n_samples_test,active_set_samples, replace = False)
        x_test_i = x_test_i[rand_vect,:]
        YTest_i = YTest[rand_vect]
        new_loss,beta,_ = compute_mse(linearRegression, x_train_i, YTrain,x_test_i, YTest_i)
        losses = np.append(losses, new_loss)

        if len(betas)==0:
            betas = beta
        else:
            betas = np.append(betas, beta, axis =1)
    ordered_losses = np.argsort(losses)
    orderd_losses_ = np.sort(losses)
    #losses_to_select = r3.choice(np.arange(100,200), 1, replace=False)[0]