Exemplo n.º 1
0
    map = mean_absolute_percentage_error(y_test, predicted, mode)
    print('MAPE is ', map)
    meap = median_absolute_percentage_error(y_test, predicted)
    print('MEAPE is ', meap)
    rmsre = mean_percentage_r_error(y_test, predicted)
    print('MPRE is ', rmsre)

    plot_results(predicted, ts_test, y_test, ts_train, y_train_original_part,
                 rms, ms, map, meap, rmsre, mode)
    ''' todo : denoramalize the actual and predicted data '''
    print('Denormalizeing Data ....')

    from denorm import denorm_v2

    y_test_revert = denorm_v2(y_test, min_max_scaler)
    print('-----------------------', len(y_test), len(y_test_revert))
    y_train_revert = denorm_v2(y_train, min_max_scaler)
    print('-----------------------', len(y_train), len(y_train_revert))
    y_train_original_revert = denorm_v2(y_train_original_part, min_max_scaler)
    print('-----------------------', len(y_train_original_part),
          len(y_train_original_revert))
    y_pred_revert = denorm_v2(predicted, min_max_scaler)
    print('-----------------------', len(predicted), len(y_pred_revert))

    y_test_revert = np.reshape(y_test_revert, (y_test_revert.size, ))
    y_pred_revert = np.reshape(y_pred_revert, (y_pred_revert.size, ))

    rms = sqrt(mean_squared_error(y_test_revert, y_pred_revert))
    ms = mean_squared_error(y_test_revert, y_pred_revert)
    print('RMSE is ', rms)
Exemplo n.º 2
0
    def test(self):
        ytr = []
        ypr = []
        print('\n\t\t ------------------- Test staging ---------------------')
        for i in range(len(X_test)):
            X = X_test[i]
            X = np.expand_dims(X, 3)
            X = np.reshape(X, newshape=(1, X.size, 1))
            Y = X
            y_true = y_test[i]  # y_T+1
            y_true = np.expand_dims(y_true, 3)
            g_in = X
            print('\tshape of X is ', X.shape, 'shape of Y is ', Y.shape,
                  'shape of y_true is ', y_true.shape) if i == 0 else None
            g_out = self.generator.predict([g_in, Y])  # which is y_hat_T+1
            print('\tshape of g_out is ', g_out.shape) if i == 0 else None
            g_out = np.squeeze(g_out)
            y_pred = g_out[-1]
            ytr.append(y_true[0][0])
            ypr.append(y_pred)

        from sklearn.metrics import mean_squared_error
        from math import sqrt
        ms = mean_squared_error(ytr, ypr)
        rms = sqrt(ms)
        print('MSE is ', ms)
        print(' ------------------------------------')

        def mean_absolute_percentage_error(y_true, y_pred):
            ape = []
            for k in range(len(y_true)):
                # if abs(y_true[k])!=0 and k not in z1 and k not in z2:
                if abs(y_pred[k]) > 1e-3 and abs(y_true[k]) > 1e-3:
                    ape.append(abs((y_true[k] - y_pred[k]) / y_true[k]))
            # plt.hist(ape, bins='auto', color='orange')
            # plt.xlabel('MAPE')
            # plt.ylabel('frequency')
            # plt.grid()
            #
            # plt.pause(3)
            # plt.close()
            ape = sorted(ape)
            indexes = np.where(ape < np.percentile(ape, 90))[0]
            ape = [ape[k] for k in indexes]
            # print(ape)

            return np.mean(np.array(ape)) * 100

        def median_absolute_percentage_error(y_true, y_pred):
            ape = []
            for k in range(len(y_true)):
                if abs(y_pred[k]) > 1e-3 and abs(y_true[k]) > 1e-3:
                    # if abs(y_true[k])!=0  and k not in z1 and k not in z2:
                    ape.append(abs((y_pred[k] - y_true[k]) / y_true[k]))
            ape = sorted(ape)
            indexes = np.where(ape < np.percentile(ape, 90))[0]
            ape = [ape[k] for k in indexes]
            return np.median(np.array(ape)) * 100

        def mean_percentage_r_error(y_true, y_pred):
            ape = []
            for k in range(len(y_true)):
                if abs(y_pred[k]) > 1e-3 and abs(y_true[k]) > 1e-3:
                    # if abs(y_true[k])!=0  and k not in z1 and k not in z2:
                    ape.append(pow(((y_true[k] - y_pred[k]) / y_true[k]), 2))
            ape = sorted(ape)
            indexes = np.where(ape < np.percentile(ape, 90))[0]
            ape = [ape[k] for k in indexes]
            return sqrt(np.mean(np.array(ape)))

        map = mean_absolute_percentage_error(ytr, ypr)
        print('MAPE is ', map)
        meap = median_absolute_percentage_error(ytr, ypr)
        print('MEAPE is ', meap)
        rmsre = mean_percentage_r_error(ytr, ypr)
        print('RMSRE is ', rmsre)

        # fig = plt.figure(facecolor='white', figsize=(10, 8))
        # plt.subplot(2, 1, 1)
        # plt.plot(ytr, label='Test Real Data', color='orange')
        # plt.legend()
        # plt.subplot(2, 1, 2)
        # plt.plot(ypr, label='Prediction Real Data, MAPE = %.4f%% ,\n '
        #                                     ' RMSE=%.4f  , RMSRE=%.4f  ' % (
        #                                     map, rms, rmsre))
        # plt.legend()
        # plt.savefig('/home/vacek/Cloud/cloud-predictor/NASA-HTTP/prediction/GANS/5min/resutls'
        #             '/imf' + str(imf_index) + '/prediction_normalize' + '.png', dpi=700)
        # plt.pause(5)
        # plt.close()
        ''' denoramalize the actual and predicted data '''
        min_test, max_test, ytr_revert = denorm_v2(ytr, MaxAbsScalerObj)
        min_predicted, max_predicted, ypr_revert = denorm_v2(
            ypr, MaxAbsScalerObj)

        ytr_revert = np.reshape(ytr_revert, (ytr_revert.size, ))
        ypr_revert = np.reshape(ypr_revert, (ypr_revert.size, ))

        map_denormalize = mean_absolute_percentage_error(
            ytr_revert, ypr_revert)
        print('MAPE in original scale is ', map_denormalize)
        meap_denormalize = median_absolute_percentage_error(
            ytr_revert, ypr_revert)
        print('MEAPE in original scale is ', meap_denormalize)
        rms_denormalize = sqrt(mean_squared_error(ytr_revert, ypr_revert))
        print('RMSE in original scale is ', rms_denormalize)
        rmsre_denorm = mean_percentage_r_error(ytr_revert, ypr_revert)
        print(' ------------------------------------')

        fig = plt.figure(facecolor='white', figsize=(10, 8))
        plt.subplot(3, 1, 1)
        plt.plot(ts_test, ytr_revert, label='Test Real Data', color='orange')
        plt.plot(ts_test,
                 ypr_revert,
                 label='Prediction Real Data',
                 color='brown',
                 alpha=0.5)
        plt.legend()
        plt.subplot(3, 1, 2)
        plt.plot(ts_test, ytr_revert, label='Test Real Data', color='orange')
        plt.legend()
        plt.subplot(3, 1, 3)
        plt.plot(ts_test,
                 ypr_revert,
                 label='Prediction Real Data, MAPE = %.4f%% ,\n '
                 ' RMSE=%.4f  , RMSRE=%.4f  ' %
                 (map_denormalize, rms_denormalize, rmsre_denorm))
        plt.legend()
        plt.savefig(
            '/home/vacek/Cloud/cloud-predictor/NASA-HTTP/prediction/GANS-EMD/1min-Smooth/resutls'
            '/imf' + str(imf_index) + '/prediction_original' + '.png',
            dpi=700)
        plt.pause(5)
        plt.close()

        print('writing to DB!')
        print(len(ts_test), len(ypr_revert), len(ytr_revert), len(X_test))
        for k in range(len(ts_test)):
            #print(ts_test[k], ytr_revert[k], ypr_revert[k],ytr[k])
            cur.execute('update nasa_http_emd_1min_copy set num_req_pred_gan=%s where imf_index=%s'
                        ' and num_req_pred is null and ts=%s', \
                        (float(ypr_revert[k]), int(imf_index), int(ts_test[k])+seq_len+1))
            conn.commit()
Exemplo n.º 3
0
    plt.legend()
    plt.subplot(3, 1, 3)
    plt.plot(
        y_pred,
        label=
        'Prediction Real Data, MAPE = %.4f%% ,  RMSE=%.4f  ,\n  MEAPE=%.4f%% , RMSRE=%.4f '
        % (map, rms, meap, rmsre))
    plt.legend()
    plt.savefig(
        '/home/vacek/Cloud/cloud-predictor/Saskatchewan/prediction/1step/EMD-SVR/10min-smooth/main/results'
        '/imf' + str(imf_index) + '/normalize' + '.png',
        dpi=900)
    plt.pause(5)
    plt.close()
    ''' denoramalize the actual and predicted data '''
    min_test, max_test, ts_test_revert = denorm_v2(y_test, MaxAbsScalerObj)
    min_predicted, max_predicted, ts_predicted_revert = denorm_v2(
        y_pred, MaxAbsScalerObj)
    print('min_test=%s , max_test=%s', (min_test, max_test))
    print('min_predicted=%s , max_predicted=%s',
          (min_predicted, max_predicted))

    ts_test_revert = np.reshape(ts_test_revert, (ts_test_revert.size, ))
    ts_predicted_revert = np.reshape(ts_predicted_revert,
                                     (ts_predicted_revert.size, ))

    try:
        map_denormalize = mean_absolute_percentage_error(
            ts_test_revert, ts_predicted_revert)
        print('MAPE in original scale is ', map_denormalize)
        meap_denormalize = median_absolute_percentage_error(
Exemplo n.º 4
0
            ape = []

            for k in range(len(y_true)):
                if abs(y_pred[k]) > 1e-3 and abs(y_true[k]) > 1e-3:
                    ape.append(abs((y_pred[k] - y_true[k]) / y_true[k]))

            return np.median(np.array(ape)) * 100


        map = mean_absolute_percentage_error(y_test, predicted)
        print('MAPE is ', map)
        meap = median_absolute_percentage_error(y_test, predicted)
        print('MEAPE is ', meap)

        ''' denoramalize the actual and predicted data '''
        min_train, max_train, ts_train_revert = denorm_v2(y_train_original_part,MaxAbsScalerObj)
        min_test, max_test, ts_test_revert = denorm_v2(y_test, MaxAbsScalerObj)
        min_predicted, max_predicted, ts_predicted_revert = denorm_v2(predicted, MaxAbsScalerObj)
        # print('min_train=%s , max_train=%s',(min_train,max_train))
        # print('min_test=%s , max_test=%s', (min_test, max_test))
        # print('min_predicted=%s , max_predicted=%s', (min_predicted, max_predicted))

        map_denormalize = mean_absolute_percentage_error(ts_test_revert, ts_predicted_revert)
        print('MAPE in original scale is ', map_denormalize)
        meap_denormalize = median_absolute_percentage_error(ts_test_revert, ts_predicted_revert)
        print('MEAPE in original scale is ', meap_denormalize)
        rms_denormalize = sqrt(mean_squared_error(ts_test_revert, ts_predicted_revert))
        print('RMSE in original scale is ', rms_denormalize)
        print(' ------------------------------------')

        ''' saving the trained model'''