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