diff --git a/tests/cross_validation/test_air_passengers_cross_valid.py b/tests/cross_validation/test_air_passengers_cross_valid.py new file mode 100644 index 000000000..12fe6a8bf --- /dev/null +++ b/tests/cross_validation/test_air_passengers_cross_valid.py @@ -0,0 +1,48 @@ +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.mCrossValidationOptions.mMethod = "TSCV"; + +lEngine.mOptions.mParallelMode = True; +lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H); +lEngine.getModelInfo(); +print(lEngine.mSignalDecomposition.mTrPerfDetails.head()); + +lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution + +lEngine.standardPlots(name = "outputs/my_airline_passengers_cross_valid") + +dfapp_in = df.copy(); +dfapp_in.tail() + +#H = 12 +dfapp_out = lEngine.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") +print(lEngine.to_json()); +print("\n\n") +print("\n\n") +print(Forecast_DF.tail(2*H).to_json(date_format='iso')) +print("\n\n") + +# lEngine.standardPlots(name = "outputs/airline_passengers") diff --git a/tests/cross_validation/test_ozone_cross_valid.py b/tests/cross_validation/test_ozone_cross_valid.py new file mode 100644 index 000000000..3837c784b --- /dev/null +++ b/tests/cross_validation/test_ozone_cross_valid.py @@ -0,0 +1,52 @@ +from __future__ import absolute_import + +import pandas as pd +import numpy as np + + +import pyaf.ForecastEngine as autof +import pyaf.Bench.TS_datasets as tsds + + +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.mCrossValidationOptions.mMethod = "TSCV"; +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_cross_valid"); + +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") +print(lEngine.to_json()); +print("\n\n") +print("\n\n") +print(Forecast_DF.tail(2*H).to_json(date_format='iso')) +print("\n\n") +