import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=128, FREQ='D', seed=0, trendtype="constant", cycle_length=5, transform="log", sigma=0.0, exog_count=20, ar_order=12) art.process_dataset(dataset)
lExogenousDataFrame['Date_dayofweek'] = lDate.dt.dayofweek lExogenousDataFrame['Date_day'] = lDate.dt.day lExogenousDataFrame['Date_dayofyear'] = lDate.dt.dayofyear lExogenousDataFrame['Date_month'] = lDate.dt.month lExogenousDataFrame['Date_week'] = lDate.dt.week # a column in the exog data can be of any type lExogenousDataFrame['Date_day_name'] = lDate.dt.day_name() lExogenousDataFrame['Date_month_name'] = lDate.dt.month_name() lExogenousVariables = [ col for col in lExogenousDataFrame.columns if col.startswith('Date_') ] lExogenousData = (lExogenousDataFrame, lExogenousVariables) return lExogenousData b1 = tsds.load_AU_hierarchical_dataset() df = b1.mPastData lEngine = hautof.cHierarchicalForecastEngine() lEngine.mOptions.mHierarchicalCombinationMethod = ["BU", 'TD', 'MO', 'OC'] lEngine.mOptions.mNbCores = 16 lEngine H = b1.mHorizon # lEngine.mOptions.enable_slow_mode(); # lEngine.mOptions.mDebugPerformance = True; lExogenousData = create_exog_data(b1) lEngine.train(df, b1.mTimeVar,
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=1024, FREQ='D', seed=0, trendtype="poly", cycle_length=30, transform="log", sigma=0.0, exog_count=20, ar_order=0) art.process_dataset(dataset)
from pyaf.Bench import MComp as mcomp #tester1 = mcomp.cMComp_Tester(tsds.load_M1_comp()); #tester1.testSignal('') #tester1.testAllSignals() #tester2 = mcomp.cMComp_Tester(tsds.load_M2_comp()); #tester1.testSignal('') #tester2.testAllSignals() #tester3 = mcomp.cMComp_Tester(tsds.load_M3_Y_comp()); #tester1.testSignal('') #tester3.testAllSignals() #tester4 = mcomp.cMComp_Tester(tsds.load_M3_Q_comp()); #tester1.testSignal('') #tester4.testAllSignals() #tester5 = mcomp.cMComp_Tester(tsds.load_M3_M_comp()); #tester1.testSignal('') #tester5.testAllSignals() #tester6 = mcomp.cMComp_Tester(tsds.load_M3_Other_comp()); #tester1.testSignal('') #tester6.testAllSignals() tester7 = mcomp.cMComp_Tester(tsds.load_M4_comp() , "M4_COMP"); #tester7.testSignal('FIN1') tester7.testAllSignals()
import pandas as pd import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds #get_ipython().magic('matplotlib inline') b1 = tsds.generate_random_TS(N=320, FREQ='D', seed=0, trendtype="constant", cycle_length=0, transform="", sigma=0.1, ar_order=12) df = b1.mPastData #df.tail(10) #df[:-10].tail() #df[:-10:-1] #df.describe() lEngine = autof.cForecastEngine() lEngine lEngine.mOptions.set_active_transformations([]) lEngine.mOptions.set_active_trends([]) lEngine.mOptions.set_active_periodics([]) lEngine.mOptions.set_active_autoregressions(['AR', 'ARX']) H = b1.mHorizon
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=32, FREQ='D', seed=0, trendtype="constant", cycle_length=30, transform="exp", sigma=0.0, exog_count=100, ar_order=12) art.process_dataset(dataset)
import pyaf.Bench.TS_datasets as tsds import pyaf.Bench.YahooStocks as ys tester7 = ys.cYahoo_Tester(tsds.load_yahoo_stock_prices("cac40"), "YAHOO_STOCKS") #tester7.testAllSignals(12); tester7.testSignals("ML.PA", 12) # tester7.run_multiprocessed(18);
import pandas as pd import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds import pyaf.CodeGen.TS_CodeGenerator as tscodegen #get_ipython().magic('matplotlib inline') b1 = tsds.generate_random_TS(N=3200, FREQ='D', seed=0, trendtype="constant", cycle_length=12, transform="", sigma=0.0, exog_count=200) df = b1.mPastData H = b1.mHorizon N = df.shape[0] for n in [N // 8, N // 4, N // 2, N]: df1 = df.head(n).copy() lEngine = autof.cForecastEngine() lEngine.mOptions.mEnableSeasonals = False # lEngine.mOptions.mDebugCycles = True; lEngine lEngine.train(df1, b1.mTimeVar, b1.mSignalVar, H, None) lEngine.getModelInfo()
import pyaf.Bench.TS_datasets as tsds import pyaf.Bench.GenericBenchmark as tBench import warnings #%matplotlib inline tester1 = tBench.cGeneric_Tester(tsds.load_MWH_datsets(), "MWH_BENCH") with warnings.catch_warnings(): warnings.simplefilter("error") tester1.testSignals('plastics') # tester1.testAllSignals() # tester1.run_multiprocessed();
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(['XGB']); 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") dfapp_in = df.copy();
import pandas as pd import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds b1 = tsds.load_ozone_exogenous_categorical() df = b1.mPastData print(b1.mExogenousDataFrame.Exog2.cat.categories) print(b1.mExogenousDataFrame.Exog3.cat.categories) print(b1.mExogenousDataFrame.Exog4.cat.categories) lEngine = autof.cForecastEngine() lEngine.mOptions.mDebug = True lEngine.mOptions.mDebugProfile = True lEngine.mOptions.disable_all_periodics() lEngine.mOptions.set_active_autoregressions(['ARX']) lExogenousData = (b1.mExogenousDataFrame, b1.mExogenousVariables) H = 12 lEngine.train(df, 'Time', b1.mSignalVar, H, lExogenousData) lEngine lEngine.getModelInfo() lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution lEngine.standardPlots(name="outputs/my_categorical_arx_ozone") dfapp_in = df.copy() dfapp_in.tail()
import pandas as pd import numpy as np import pyaf.Bench.MComp as mcomp import pyaf.Bench.TS_datasets as tsds import warnings tester2 = mcomp.cMComp_Tester(tsds.load_M2_comp(), "M2_COMP") with warnings.catch_warnings(): warnings.simplefilter("error") # tester1.testSignal('') # tester2.testAllSignals() tester2.run_multiprocessed()
import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds #get_ipython().magic('matplotlib inline') lValues = [2] # lValues = lValues + [ k for k in range(24, 128, 8)]; for nbrows in range(1000, 32000, 1000): cyc = lValues[0] print("TEST_CYCLES_START", nbrows, cyc) b1 = tsds.generate_random_TS(N=nbrows, FREQ='H', seed=0, trendtype="constant", cycle_length=cyc, transform="", sigma=0.1, exog_count=0) df = b1.mPastData # df.tail(10) # df[:-10].tail() # df[:-10:-1] # df.describe() lEngine = autof.cForecastEngine() lEngine.mOptions.mCycleLengths = [k for k in range(2, 128)] lEngine H = cyc * 2
import pandas as pd import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds #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.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()
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=32, FREQ='D', seed=0, trendtype="linear", cycle_length=5, transform="pow3", sigma=0.0, exog_count=100, ar_order=12) art.process_dataset(dataset)
import pandas as pd import numpy as np import pyaf.Bench.TS_datasets as tsds import pyaf.Bench.YahooStocks as ys symbol_lists = tsds.get_yahoo_symbol_lists(); y_keys = sorted(symbol_lists.keys()) print(y_keys) k = "nysecomp" tester = ys.cYahoo_Tester(tsds.load_yahoo_stock_prices(k) , "YAHOO_STOCKS_" + k); tester.testSignals('VRS');
import pandas as pd import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds # get_ipython().magic('matplotlib inline') # %load_ext memory_profiler lValues = [ 64 ]; for cyc in lValues: print("TEST_CYCLES_START", cyc) b1 = tsds.generate_random_TS(N = 4800 , FREQ = 'D', seed = 0, trendtype = "linear", cycle_length = cyc, transform = "", sigma = 0.0, exog_count = 100); df = b1.mPastData # df.tail(10) # df[:-10].tail() # df[:-10:-1] # df.describe() lEngine = autof.cForecastEngine() lEngine.mOptions.mCycleLengths = [ k for k in range(2,128) ]; lEngine H = b1.mHorizon; lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H); lEngine.getModelInfo(); lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N = 1024 , FREQ = 'D', seed = 0, trendtype = "constant", cycle_length = 7, transform = "sqr", sigma = 0.0, exog_count = 0, ar_order = 0); art.process_dataset(dataset);
import pandas as pd import numpy as np import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds import warnings with warnings.catch_warnings(): # warnings.simplefilter("error") b1 = tsds.generate_random_TS(N = 160 , FREQ = 'D', seed = 0, trendtype = "constant", cycle_length = 12, transform = "None", sigma = 0.10, exog_count = 1280); df = b1.mPastData df.info() # df.to_csv("outputs/rand_exogenous.csv") H = b1.mHorizon[b1.mSignalVar]; N = df.shape[0]; for n in [N]: for nbex in [1280]: df1 = df.head(n).copy(); lEngine = autof.cForecastEngine() lEngine.mOptions.mMaxFeatureForAutoreg = 10000; lEngine.mOptions.mParallelMode = False; # lEngine.mOptions.mEnableSeasonals = False; # lEngine.mOptions.mDebugCycles = True; # lEngine.mOptions.mDebugProfile = True; lEngine lExogenousData = (b1.mExogenousDataFrame , b1.mExogenousVariables[0:nbex]) lEngine.train(df1 , b1.mTimeVar , b1.mSignalVar, H, lExogenousData);
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=128, FREQ='D', seed=0, trendtype="linear", cycle_length=7, transform="inv", sigma=0.0, exog_count=20, ar_order=0) art.process_dataset(dataset)
import pandas as pd import numpy as np import pyaf.HierarchicalForecastEngine as hautof import pyaf.Bench.TS_datasets as tsds import datetime #get_ipython().magic('matplotlib inline') b1 = tsds.load_AU_infant_grouped_dataset(); # reduce the number of possible values of State. b1.mHierarchy['Groups']['State'] = ["NSW","VIC"]; df = b1.mPastData; lEngine = hautof.cHierarchicalForecastEngine() lEngine.mOptions.mHierarchicalCombinationMethod = ["BU" , 'TD' , 'MO' , 'OC']; lEngine H = b1.mHorizon; # lEngine.mOptions.enable_slow_mode(); # lEngine.mOptions.mDebugPerformance = True; lEngine.mOptions.set_active_autoregressions([]); lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H, b1.mHierarchy, None); lEngine.getModelInfo(); #lEngine.standrdPlots("outputs/AU_infant_"); dfapp_in = df.copy();
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=1024, FREQ='D', seed=0, trendtype="linear", cycle_length=12, transform="cumsum", sigma=0.0, exog_count=0, ar_order=12) art.process_dataset(dataset)
import pyaf.ForecastEngine as autof import pyaf.Bench.TS_datasets as tsds b1 = tsds.generate_random_TS(N = 4000 , FREQ = 'D', seed = 0, trendtype = "constant", cycle_length = 24, transform = "None", sigma = 0.1, exog_count = 0); df = b1.mPastData lEngine = autof.cForecastEngine() lEngine H = 12; 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());
import pyaf.Bench.TS_datasets as tsds import pyaf.tests.artificial.process_artificial_dataset as art dataset = tsds.generate_random_TS(N=128, FREQ='D', seed=0, trendtype="poly", cycle_length=5, transform="sqrt", sigma=0.0, exog_count=100, ar_order=0) art.process_dataset(dataset)
dfapp_out.tail(2 * H) print("Forecast Columns ", dfapp_out.columns) Forecast_DF = dfapp_out[[ idataset.mTimeVar, lSignalVar, lSignalVar + '_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") with warnings.catch_warnings(): warnings.simplefilter("error") dataset = tsds.generate_random_TS(N=40, FREQ='D', seed=0, trendtype="linear", cycle_length=4, transform="exp", sigma=2.0, exog_count=0) process_dataset(dataset)