def test_air_passengers_missing_data(iTimeMissingDataImputation,
                                     iSignalMissingDataImputation):

    b1 = tsds.load_airline_passengers()
    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.º 2
0
import pandas as pd
import numpy as np

import pyaf.ForecastEngine as autof
import pyaf.Bench.TS_datasets as tsds


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

df.head()


lEngine = autof.cForecastEngine()
lEngine

H = b1.mHorizon;
# lEngine.mOptions.enable_slow_mode();
# lEngine.mOptions.mDebugPerformance = True;
lEngine.mOptions.mParallelMode = True;
lEngine.mOptions.set_active_autoregressions(['SVR']);
        
lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H);
lEngine.getModelInfo();
print(lEngine.mSignalDecomposition.mTrPerfDetails.head());

lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution

lEngine.standrdPlots(name = "outputs/my_airline_passengers")

dfapp_in = df.copy();
Ejemplo n.º 3
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)

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

    df.head()

    lEngine = autof.cForecastEngine()
    lEngine

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

    lEngine2 = pickleModel(lModel)

    lEngine2.getModelInfo()
    print(lEngine2.mSignalDecomposition.mTrPerfDetails.head())

    lEngine2.mSignalDecomposition.mBestModel.mTimeInfo.mResolution

    lEngine2.standrdPlots(name="outputs/rnn_my_airline_passengers")

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

    # H = 12
    dfapp_out = lEngine2.forecast(dfapp_in, H)
    dfapp_out.tail(2 * H)
    print("Forecast Columns ", dfapp_out.columns)
    lForecastColumnName = b1.mSignalVar + '_Forecast'
    Forecast_DF = dfapp_out[[
        b1.mTimeVar, b1.mSignalVar, lForecastColumnName,
        lForecastColumnName + '_Lower_Bound',
        lForecastColumnName + '_Upper_Bound'
    ]]
    print(Forecast_DF.info())
    print("Forecasts\n", Forecast_DF.tail(2 * 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")