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_)
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]