Ejemplo n.º 1
0
def test_ozone_debug_perf():
    b1 = tsds.load_ozone()
    df = b1.mPastData

    # df.tail(10)
    # df[:-10].tail()
    # df[:-10:-1]
    # df.describe()

    lEngine = autof.cForecastEngine()
    lEngine

    H = b1.mHorizon
    lEngine.mOptions.mDebugPerformance = True
    lEngine.mOptions.mEnableCycles = False
    lEngine.mOptions.mEnableTimeBasedTrends = False
    lEngine.mOptions.mEnableARModels = False
    lEngine.train(df, b1.mTimeVar, b1.mSignalVar, H)
    lEngine.getModelInfo()
    print(lEngine.mSignalDecomposition.mTrPerfDetails.head())

    lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution

    lEngine.standardPlots("outputs/my_ozone")

    dfapp_in = df.copy()
    dfapp_in.tail()

    dfapp_out = lEngine.forecast(dfapp_in, H)
    #dfapp_out.to_csv("outputs/ozone_apply_out.csv")
    dfapp_out.tail(2 * H)
    print("Forecast Columns ", dfapp_out.columns)
    Forecast_DF = dfapp_out[[
        b1.mTimeVar, b1.mSignalVar, b1.mSignalVar + '_Forecast'
    ]]
    print(Forecast_DF.info())
    print("Forecasts\n",
          Forecast_DF.tail(H).values)

    print("\n\n<ModelInfo>")
    print(lEngine.to_json())
    print("</ModelInfo>\n\n")
    print("\n\n<Forecast>")
    print(Forecast_DF.tail(2 * H).to_json(date_format='iso'))
    print("</Forecast>\n\n")
Ejemplo n.º 2
0
def test_transformation(itransformation):

    b1 = tsds.load_ozone()
    df = b1.mPastData

    lEngine = autof.cForecastEngine()
    lEngine

    H = b1.mHorizon
    # lEngine.mOptions.enable_slow_mode();
    lEngine.mOptions.mDebugPerformance = True

    lEngine.mOptions.disable_all_transformations()
    lEngine.mOptions.mActiveTransformations[itransformation] = True
    lEngine.mOptions.mBoxCoxOrders = lEngine.mOptions.mExtensiveBoxCoxOrders

    lEngine.train(df, b1.mTimeVar, b1.mSignalVar, H)
    lEngine.getModelInfo()
    print(lEngine.mSignalDecomposition.mTrPerfDetails.head())

    lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution

    lEngine.standrdPlots("outputs/my_ozone_" + itransformation)

    dfapp_in = df.copy()
    dfapp_in.tail()

    dfapp_out = lEngine.forecast(dfapp_in, H)
    #dfapp_out.to_csv("outputs/ozone_apply_out_" + itransformation + ".csv")
    dfapp_out.tail(H)
    print("Forecast Columns ", dfapp_out.columns)
    Forecast_DF = dfapp_out[[
        b1.mTimeVar, b1.mSignalVar, b1.mSignalVar + '_Forecast'
    ]]
    print(Forecast_DF.info())
    print("Forecasts\n", Forecast_DF.tail(H))

    print("\n\n<ModelInfo>")
    print(lEngine.to_json())
    print("</ModelInfo>\n\n")
    print("\n\n<Forecast>")
    print(Forecast_DF.tail(2 * H).to_json(date_format='iso'))
    print("</Forecast>\n\n")
def test_ozone_missing_data(iTimeMissingDataImputation,
                            iSignalMissingDataImputation):

    b1 = tsds.load_ozone()
    df = b1.mPastData

    if (iTimeMissingDataImputation is not None):
        df = add_some_missing_data_in_time(df, b1.mTimeVar)
    if (iSignalMissingDataImputation is not None):
        df = add_some_missing_data_in_signal(df, b1.mSignalVar)

    lEngine = autof.cForecastEngine()
    H = b1.mHorizon
    lEngine.mOptions.mMissingDataOptions.mTimeMissingDataImputation = iTimeMissingDataImputation
    lEngine.mOptions.mMissingDataOptions.mSignalMissingDataImputation = iSignalMissingDataImputation
    lEngine.train(df, b1.mTimeVar, b1.mSignalVar, H)
    lEngine.getModelInfo()
    print(lEngine.mSignalDecomposition.mTrPerfDetails.head())

    dfapp_in = df.copy()
    dfapp_in.tail()
    dfapp_out = lEngine.forecast(dfapp_in, H)
    #dfapp_out.to_csv("outputs/ozone_apply_out.csv")
    dfapp_out.tail(2 * H)
    print("Forecast Columns ", dfapp_out.columns)
    Forecast_DF = dfapp_out[[
        b1.mTimeVar, b1.mSignalVar, b1.mSignalVar + '_Forecast'
    ]]
    print(Forecast_DF.info())
    print("Forecasts\n", Forecast_DF.tail(H))

    print("\n\n<ModelInfo>")
    print(lEngine.to_json())
    print("</ModelInfo>\n\n")
    print("\n\n<Forecast>")
    print(Forecast_DF.tail(2 * H).to_json(date_format='iso'))
    print("</Forecast>\n\n")
Ejemplo n.º 4
0
def build_model(iPerf):
    b1 = tsds.load_ozone()
    df = b1.mPastData

    lEngine = autof.cForecastEngine()
    lEngine

    H = b1.mHorizon;
    # lEngine.mOptions.enable_slow_mode();
    lEngine.mOptions.mDebugPerformance = True;
    lEngine.mOptions.mModelSelection_Criterion = iPerf;
    lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H);
    lEngine.getModelInfo();
    print(lEngine.mSignalDecomposition.mTrPerfDetails.head());

    lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution

    lEngine.standardPlots("outputs/my_ozone_perfs_" + iPerf);

    dfapp_in = df.copy();
    dfapp_in.tail()
    # H = 12
    dfapp_out = lEngine.forecast(dfapp_in, H);
    # dfapp_out.to_csv("outputs/ozone_apply_out.csv")
    dfapp_out.tail(2 * H)
    print("Forecast Columns " , dfapp_out.columns);
    Forecast_DF = dfapp_out[[b1.mTimeVar , b1.mSignalVar, b1.mSignalVar + '_Forecast']]
    print(Forecast_DF.info())
    print("Forecasts\n" , Forecast_DF.tail(H));

    print("\n\n<ModelInfo>")
    print(lEngine.to_json());
    print("</ModelInfo>\n\n")
    print("\n\n<Forecast>")
    print(Forecast_DF.tail(2*H).to_json(date_format='iso'))
    print("</Forecast>\n\n")
Ejemplo n.º 5
0
import pyaf.ForecastEngine as autof
import pyaf.Bench.TS_datasets as tsds


b1 = tsds.load_ozone()
df = b1.mPastData

lEngine = autof.cForecastEngine()
lEngine

H = b1.mHorizon;
lEngine.mOptions.mFilterSeasonals = False;
lEngine.mOptions.mParallelMode = False;
lEngine.mOptions.mDebugPerformance = True;
lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H);
lEngine.getModelInfo();
print(lEngine.mSignalDecomposition.mTrPerfDetails.head());

Ejemplo n.º 6
0
def buildModel(iParallel=True):

    import pandas as pd
    import numpy as np
    import pyaf.ForecastEngine as autof
    import pyaf.Bench.TS_datasets as tsds

    import logging
    import logging.config

    # logging.config.fileConfig('logging.conf')

    logging.basicConfig(level=logging.INFO)

    # get_ipython().magic('matplotlib inline')

    b1 = tsds.load_ozone()
    df = b1.mPastData

    # df.tail(10)
    # df[:-10].tail()
    # df[:-10:-1]
    # df.describe()

    lEngine = autof.cForecastEngine()
    lEngine

    H = b1.mHorizon
    # lEngine.mOptions.enable_slow_mode();
    lEngine.mOptions.mDebugPerformance = True
    lEngine.mOptions.mParallelMode = iParallel
    lEngine.mOptions.set_active_autoregressions(['MLP', 'LSTM'])
    lEngine.train(df, b1.mTimeVar, b1.mSignalVar, H)

    lEngine2 = pickleModel(lEngine)
    lEngine2.getModelInfo()
    print(lEngine2.mSignalDecomposition.mTrPerfDetails.head())

    lEngine2.mSignalDecomposition.mBestModel.mTimeInfo.mResolution

    lEngine2.standardPlots("outputs/my_rnn_ozone")

    dfapp_in = df.copy()
    dfapp_in.tail()

    # H = 12
    dfapp_out = lEngine2.forecast(dfapp_in, H)
    # dfapp_out.to_csv("outputs/rnn_ozone_apply_out.csv")
    dfapp_out.tail(2 * H)
    print("Forecast Columns ", dfapp_out.columns)
    Forecast_DF = dfapp_out[[
        b1.mTimeVar, b1.mSignalVar, b1.mSignalVar + '_Forecast'
    ]]
    print(Forecast_DF.info())
    print("Forecasts\n", Forecast_DF.tail(H))

    print("\n\n<ModelInfo>")
    print(lEngine2.to_json())
    print("</ModelInfo>\n\n")
    print("\n\n<Forecast>")
    print(Forecast_DF.tail(2 * H).to_json(date_format='iso'))
    print("</Forecast>\n\n")