Example #1
0
    for i in range(0, num_blocks):
        x_train_i, x_test_i = get_current_data(XTrain, XTest, blocks_generated[i,:])
        new_loss,beta,corr = compute_mse(linearRegression, x_train_i, YTrain,x_test_i, YTest)
        losses = np.append(losses, new_loss)

        if len(betas)==0:
            betas = beta
            corrs = corr
        else:
            betas = np.append(betas, beta, axis =1)
            corrs = np.append(corrs, corr,axis = 1)
    ordered_losses = np.argsort(losses)
    orderd_losses_ = np.sort(losses)
    ordered_loss_ten = extract_losses(ordered_losses)

    weights_indexes = get_common_indexes(ordered_loss_ten,blocks_generated,n_features,betas)
    ordered_weights_indexes = np.argsort(weights_indexes)[::-1]
    ordered_weights_indexes_values = np.sort(weights_indexes)[::-1]

    saved_indexes = extracte_chosen_indexes(saved_indexes, ordered_weights_indexes, ordered_weights_indexes_values, chosen_indexes)
    x_train_saved, x_test_saved = get_current_data(XTrain, XTest, saved_indexes)
    mse_saved,_,_ = compute_mse(linearRegression, x_train_saved, YTrain,x_test_saved, YTest)
    if count==0:
        mse_last = mse_saved
        len_last = len(saved_indexes)
    while mse_saved>mse_last:
        saved_indexes = np.delete(saved_indexes, len(saved_indexes)-1)
        x_train_saved, x_test_saved = get_current_data(XTrain, XTest, saved_indexes)
        mse_saved,_,_ = compute_mse(linearRegression, x_train_saved, YTrain,x_test_saved, YTest)
    mse_last = mse_saved
    mses.append(mse_last)
Example #2
0
        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]
    #print("loss scelte", losses_to_select)
    first_loss = orderd_losses_[0]
    chosen_losses = len(orderd_losses_[orderd_losses_<=first_loss*4./3])
    if chosen_losses<5:
        chosen_losses=5
    print("losses scelte", chosen_losses)
    index_chosen_losses = ordered_losses[:chosen_losses]

    weights_indexes,beta_sign = get_common_indexes(weights_indexes, index_chosen_losses,blocks_generated,betas,n_features,deleted_indexes,saved_indexes)
    ordered_weights_indexes = np.argsort(weights_indexes)[::-1]
    ordered_weights_indexes_values = np.sort(weights_indexes)[::-1]

    chosen_indexes = r3.choice(np.arange(1,6), 1, replace=False)[0]
    if chosen_indexes+len(saved_indexes)>final_active_set:
        chosen_indexes = final_active_set-len(saved_indexes)
    print("chosen indexes", chosen_indexes)
    saved_indexes,del_indexes = extract_chosen_indexes_from_start(saved_indexes, ordered_weights_indexes, chosen_indexes,del_indexes)
    deleted_indexes = np.where(del_indexes>index)[0]
    assert(len(deleted_indexes)+len(saved_indexes)<=n_features)
    x_train_saved, x_test_saved = get_current_data(XTrain, XTest, saved_indexes)
    x_test_saved = x_test_saved[rand_vect,:]
    YTest_saved = YTest[rand_vect]
    mse_saved,_,_ = compute_mse(linearRegression, x_train_saved, YTrain,x_test_saved, YTest_saved)
    mses.append(mse_saved)
    ordered_losses = np.argsort(losses)
    orderd_losses_ = np.array(losses)[ordered_losses]

    standard_deviation = np.std(orderd_losses_)
    mean_weights = np.mean(orderd_losses_)

    chosen_losses = len(orderd_losses_[orderd_losses_ + standard_deviation <= mean_weights])
    if chosen_losses > num_blocks / 3:
        chosen_losses = num_blocks / 3

    print("losses scelte", chosen_losses)
    index_chosen_losses = ordered_losses[:chosen_losses]
    betas = np.hstack(betas)
    if flag_linear == 0:
        weights_indexes = get_common_indexes(weights_indexes, index_chosen_losses, blocks_generated, betas,
                                             n_features_transf)
        weights_abs = np.abs(weights_indexes)
    else:
        weights_indexes_copy = get_common_indexes(weights_indexes.copy(), index_chosen_losses, blocks_generated, betas,
                                                  n_features_transf)
        weights_abs = np.abs(weights_indexes_copy)

    ordered_weights_indexes = np.argsort(weights_abs)[::-1]
    ordered_weights_indexes_values = weights_abs[ordered_weights_indexes]

    chosen_indexes = r3.choice(np.arange(2, 4), 1, replace=False)[0]
    if chosen_indexes + len(saved_indexes) > max_active_set:
        chosen_indexes = max_active_set - len(saved_indexes)
    print("chosen indexes", chosen_indexes)
    saved_indexes = extract_chosen_indexes_from_start(saved_indexes, ordered_weights_indexes, chosen_indexes)
Example #4
0
        x_train_i, x_test_i = get_current_data(XTrain, XTest, blocks_generated[i, :])
        new_loss, beta, corr = compute_mse(linearRegression, x_train_i, YTrain, x_test_i, YTest)
        losses = np.append(losses, new_loss)

        if len(betas) == 0:
            betas = beta
            corrs = corr
        else:
            betas = np.append(betas, beta, axis=1)
            corrs = np.append(corrs, corr, axis=1)
    ordered_losses = np.argsort(losses)
    orderd_losses_ = np.sort(losses)
    ordered_loss_ten = ordered_losses[:10]

    weights_indexes, beta_sign = get_common_indexes(
        weights_indexes, ordered_loss_ten, blocks_generated, betas, n_features
    )
    ordered_weights_indexes = np.argsort(weights_indexes)[::-1]
    ordered_weights_indexes_values = np.sort(weights_indexes)[::-1]

    saved_indexes = extract_chosen_indexes_from_start(
        saved_indexes, ordered_weights_indexes, ordered_weights_indexes_values, chosen_indexes
    )
    x_train_saved, x_test_saved = get_current_data(XTrain, XTest, saved_indexes)
    mse_saved, _, _ = compute_mse(linearRegression, x_train_saved, YTrain, x_test_saved, YTest)
    mses.append(mse_saved)

    num_informative = [f for f in saved_indexes if f <= 99]
    print("num_inf", len(num_informative), "su", len(saved_indexes), "mse", mse_saved)

    saved_indexes_list.append(saved_indexes)