Esempio n. 1
0
file_name_dict = sys.argv[2]
ext = ".npz"
file = "ENEL_2014/"+file_name+ext


file_dict = "ENEL_2014/"+file_name_dict+ext

results_dict = Result(file_dict, "lasso")
results = Result(file, "lasso")

#dict_ = results.extract_dict()
dict_ = results_dict.extract_dict()

XTrain, YTrain, XVal, YVal = results.extract_train_val()

new_loss, beta = compute_lasso(XTrain, YTrain, XVal, YVal,score = "mean_squared_error")
print("loss lineare", new_loss)

score = "mean_squared_error"
if score=="r2_score":
    score_f = r2_score
    scoring = "r2"
else:
    score_f = mean_squared_error
    scoring = "mean_squared_error"

verbose = True


###compute ranking
keys_sel = ordered_final_weights[:iter]
indexes = np.array([], dtype = "int64")
for key in keys_sel:
    indexes = np.union1d(indexes,dict_.get(key))

indexes = np.array(indexes).astype("int64")

weights = assign_weights(weights_data.copy())
weights = weights[indexes]
XTrain_current, XTest_current = get_current_data(XTrain, XTest,indexes)


###compute LASSO
if compute_lasso_current:
    new_loss, beta = compute_lasso(XTrain_current, YTrain, XTest_current, YTest, score=score)
    beta = np.abs(beta[:, 0])
    beta_indexes,beta_ordered = get_beta_div_zeros(beta)

    print("loss insieme ridotto", new_loss)
    print(indexes[beta_indexes])


model = Shooting(weights)
lasso = LASSOEstimator(model)
loss, beta = compute_weightedLASSO(lasso,XTrain_current,YTrain, XTest_current, YTest,scoring, score_f, verbose)

beta = np.abs(beta)
beta_indexes,beta_ordered = get_beta_div_zeros(beta)

print(indexes[beta_indexes])
keys_ = np.array(list(dict_.keys())).astype("int64")


ordered_final_weights = np.argsort(weights_data)[::-1]
values = list(dict_.values())

weights_level = extract_level(ordered_final_weights, values)

if verbose:
    print("-------------")
    print("ranking of the featues:", weights_level)
    print("-------------")
ordered_indexes = np.argsort(weights_data)[::-1]
losses = []

new_loss, _ = compute_lasso(XTrain, YTrain, XVal, YVal, score)
print("new_loss", new_loss)

losses = []
indexes_tot = []
n_features = XTrain.shape[1]

for i in range(n_features):

        ###compute LASSO
        indexes = ordered_final_weights[:i+1].astype("int64")
        indexes_tot.append(indexes)

        XTrain_current, XTest_current = get_current_data(XTrain, XVal, indexes)

        print("----------------------------")