Ejemplo n.º 1
0
YTest = dataset.YTest


XTrainTransf = dataset.XTrainTransf
XTestTransf = dataset.XTestTransf

lambda_opt = {"alpha": 67.1590893061}

#model_list = {ISTA(), FISTA(), Shooting(), ADMM()}
model_list = {modifiedShooting(DistanceCorrelation())}
ext_data = ".npz"
ext_model = ".pkl"
folder = "AlgorithmResults/"

for model in model_list:
    lasso = LASSOEstimator(model)
    lasso.set_params(**lambda_opt)
    lasso.fit(XTrainTransf,YTrain)

    y_pred_test = lasso.predict(XTestTransf)
    mse_test = mean_squared_error(YTest, y_pred_test)
    print ("mse_test "+model.__class__.__name__,mse_test)

    y_pred_train = lasso.predict(XTrainTransf)
    mse_train = mean_squared_error(YTrain, y_pred_train)

    print("mse_train "+model.__class__.__name__,mse_train)

    np.savez(folder+model.__class__.__name__+ext_data, XTrain=XTrain, YTrain = YTrain, mse_test=mse_test, XTest=dataset.XTest, YTest = YTest, y_pred_test=y_pred_test,
         XTrainTransf=XTrainTransf, XTestTransf=XTestTransf, mse_train = mse_train)
    current_informative = np.intersect1d(ordered_indexes, informative_indexes)
    current_not_informative = np.array(list(set(ordered_indexes)-set(current_informative)))
    if verbose:
        print("informative", len(current_informative), "su", len(ordered_indexes))
        print("non informative",len(current_not_informative),"su", len(ordered_indexes))

    current_train, current_test = get_current_data(XTrain, XTest, ordered_indexes)
    indexes_to_extract.append(ordered_indexes)

    model_list = {Shooting(weights)}
    ext_data = ".npz"
    ext_model = ".pkl"


    for model in model_list:
        lasso = LASSOEstimator(model)

        clf = GridSearchCV(lasso, parameters, fit_params = {"verbose" : False}, cv=3, scoring="mean_squared_error")
        clf.fit(current_train, YTrain)
        lambda_opt = clf.best_params_
        if verbose:
            print("best lambda", lambda_opt)

        lasso.set_params(**lambda_opt)
        lasso.fit(current_train,YTrain)

        y_pred_train = lasso.predict(current_train)
        mse_train = mean_squared_error(YTrain, y_pred_train)
        if verbose:
            print("mse_train "+model.__class__.__name__,mse_train)