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")
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();
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")