Exemple #1
0
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)
Exemple #4
0
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()
Exemple #5
0
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
Exemple #6
0
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)
Exemple #7
0
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);
Exemple #8
0
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()
Exemple #9
0
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()
Exemple #12
0
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
Exemple #14
0
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()
Exemple #15
0
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');
Exemple #17
0
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);
Exemple #19
0
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);
Exemple #20
0
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)
Exemple #21
0
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();
Exemple #22
0
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());

Exemple #24
0
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)
Exemple #25
0
        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)