Пример #1
0
    def fitting(self,XTrain, YTrain, XTest,YTest):

        YTrain_ = np.log(YTrain)
        if np.isnan(YTrain_).any():
            print("log y nan")
            return
        YTest_ = np.log(YTest)
        if np.isnan(YTest_).any():
            print("log y nan")
            return

        XTrain_transf = np.log(XTrain)
        if np.isnan(XTrain_transf):
            print("log x nan")
            return
        XTest_transf = np.log(XTest)
        if np.isnan(XTest_transf):
            print("log x nan")
            return

        ##centratura dei dati
        XTrain_transf, YTrain_, X_mean, y_mean, X_std = center_data(XTrain_transf, YTrain_, fit_intercept=True, normalize = True)
        XTest_transf, YTest_ = center_test(XTest_transf,YTest_,X_mean,y_mean,X_std)

        new_loss,_ = compute_lasso(XTrain_transf, YTrain_, XTest_transf, YTest_, score = "r2_score")

        print("loss log(y) e log(x) :", new_loss )
Пример #2
0
    def fitting(self, XTrain, YTrain, XTest,YTest,values_TM ):
        ##center data
        XTrain_, YTrain_, X_mean, y_mean, X_std = center_data(XTrain, YTrain, fit_intercept=True, normalize = True)
        XTest_, YTest_ = center_test(XTest,YTest,X_mean,y_mean,X_std, normalize=True)

        ##compute linear lasso
        new_loss, beta = compute_lasso(XTrain_, YTrain_, XTest_, YTest_,score = "r2_score", values_TM = values_TM)
        print("loss lineare", new_loss)
Пример #3
0
    def fitting(self,XTrain, YTrain, XTest,YTest ):

        ###trasformazione non lineare
        for degree in range(2,3):
            poly = PolynomialFeatures(degree=degree,include_bias=False)
            XTrain_transf = poly.fit_transform(XTrain)
            XTest_transf = poly.fit_transform(XTest)

            ##centratura dei dati
            XTrain_transf, YTrain_, X_mean, y_mean, X_std = center_data(XTrain_transf, YTrain, fit_intercept=True, normalize = True)
            XTest_transf, YTest_ = center_test(XTest_transf,YTest,X_mean,y_mean,X_std)

            new_loss, _ =compute_lasso(XTrain_transf, YTrain_, XTest_transf, YTest_,score = "r2_score")

            print("loss polinomio grado", str(degree),":", new_loss )
Пример #4
0
    def fitting(self,XTrain, YTrain, XTest,YTest):
        YTrain_ = np.sqrt(YTrain)
        if np.isnan(YTrain_).any():
            print("sqrt nan")
            return
        YTest_ = np.sqrt(YTest)
        if np.isnan(YTest_).any():
            print("sqrt nan")
            return

        XTrain_, YTrain_, X_mean, y_mean, X_std = center_data(XTrain, YTrain_, fit_intercept=True, normalize = True)
        XTest_, YTest_ = center_test(XTest,YTest_,X_mean,y_mean,X_std)

        new_loss, _ = compute_lasso(XTrain_, YTrain_, XTest_, YTest_,score = "r2_score")

        print("loss sqrt(y) :", new_loss )
Пример #5
0
    def fitting(self,XTrain, YTrain, XTest,YTest):

        XTrain_transf = 1./XTrain
        if np.isnan(XTrain_transf).any():
            print("inverse x nan")
            return
        XTest_transf = 1./np.array(XTest)
        if np.isnan(XTest_transf).any():
            print("inverse x nan")
            return

        XTrain_, YTrain_, X_mean, y_mean, X_std = center_data(XTrain_transf, YTrain, fit_intercept=True, normalize = True)
        XTest_, YTest_ = center_test(XTest_transf,YTest,X_mean,y_mean,X_std)

        new_loss, _ =compute_lasso(XTrain_, YTrain_, XTest_, YTest_,score = "r2_score")

        print("loss inverse x:", new_loss )
Пример #6
0
    def fitting(self,XTrain, YTrain, XTest,YTest):

        XTrain_transf = XTrain
        XTest_transf = XTest

        YTest_transf = Scalar_kernel().transform_y(XTest_transf,YTest)
        YTrain_transf = Scalar_kernel().transform_y(XTrain_transf,YTrain)

        XTrain_transf, dict_ = Scalar_kernel().transform(XTrain_transf)
        XTest_transf, dict_ = Scalar_kernel().transform(XTest_transf)


        ##centratura dei dati
        XTrain_transf, YTrain_, X_mean, y_mean, X_std = center_data(XTrain_transf, YTrain_transf, fit_intercept=True, normalize = True)
        XTest_transf, YTest_ = center_test(XTest_transf,YTest_transf,X_mean,y_mean,X_std)

        new_loss, _ = compute_lasso(XTrain_transf, YTrain_, XTest_transf, YTest_, score ="r2_score")

        print("loss enel velocita :", new_loss )
        return XTrain_transf, XTest_transf, dict_
X_transf, output_dict = enel_transf.transformPerTurbineLevel(
    dict_sample_turb, enel_dict, X, power_curve, X_transf, output_dict
)
print("transformation per turbine done")

XTrain_transf = X_transf[: XTrain.shape[0], :]
XTest_transf = X_transf[XTrain.shape[0] :, :]

##center data
XTrain_noCenter, XVal_noCenter, YTrain_noCenter, YVal_noCenter = train_test_split(
    XTrain_transf, YTrain, test_size=0.33, random_state=0
)
XTrain_, YTrain_, X_mean, y_mean, X_std = center_data(
    XTrain_noCenter, YTrain_noCenter, fit_intercept=True, normalize=True
)
XVal_, YVal_ = center_test(XVal_noCenter, YVal_noCenter, X_mean, y_mean, X_std)

values_TM = []
start_loss, _ = compute_lasso(XTrain_, YTrain_, XVal_, YVal_, score="mean_squared_error", values_TM=[])
print("loss", start_loss)

n_features_transf = XTrain_.shape[1]

####generation blocks
r = np.random.RandomState(11)
r1 = np.random.RandomState(12)
r2 = np.random.RandomState(13)
r4 = np.random.RandomState(15)

n_samples_val = XVal_.shape[0]
Пример #8
0
    scoring = "mean_squared_error"

folder = "ENEL_2014/"
ext = ".npz"

file_cross_val =  folder+file_name+ext

results_cross_val = Result(file_cross_val, "lasso")

##get transformed data
XTrain, XTest = results_cross_val.extract_data_transf()
_,YTrain,_, YTest = results_cross_val.extract_train_test()

### centratura dei dati
XTrain, YTrain, X_mean, y_mean, X_std = center_data(XTrain, YTrain, fit_intercept=True, normalize = True)
XTest, YTest = center_test(XTest,YTest,X_mean,y_mean,X_std)


##ranking
verbose = True
dict_ = results_cross_val.extract_dict()

weights_data = results_cross_val.extract_weights()

index_mse = len(weights_data)-1
weights_data = weights_data[index_mse]

final_weights = np.zeros(len(dict_.keys()))

keys_ = np.array((list)(dict_.keys())).astype("int64")
for key in keys_: