def roomTemperature():
	exp = Experiment()
	plotting = Plotter()
	plotting.initialize(filt = "median, movingAverage", skip = 500)

	dimension = 20

	exp.run_experiments_multiple(RoomTemperature(), {},\
						 [VAR(),\
						  ECVARMAOGD(),\
						  OnlineWaveFilteringParameterFree(),\
						  OnlineWaveFilteringParameterFree(),\
						  OnlineWaveFilteringParameterFree()
						  ],\
						 [{'p' : 8, 'dim': dimension},\
						  {'p' : 8, 'dim': dimension, 'lr': 1},\
						  {'max_k' : 10, 'action_dim': dimension, 'out_dim': dimension, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
						  {'max_k' : 30, 'action_dim': dimension, 'out_dim': dimension, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
						  {'max_k' : 50, 'action_dim': dimension, 'out_dim': dimension, 'opt': Hedge(), 'optForSubPredictors': FTRL()}
						  ],\
						 ['VAR_8',\
						  'ECVARMA_OGD16',\
						  'OnlineWaveFilteringParameterFree10',\
						  'OnlineWaveFilteringParameterFree30',\
						  'OnlineWaveFilteringParameterFree50'
						  ],\
						 n_runs = 20,\
						 plotter = plotting,\
						 verbose = True,
						 action_generator = ProblemBasedAction(RoomTemperature()))
def sp500():
	exp = Experiment()
	plotting = Plotter()
	plotting.initialize(filt = "movingAverage", skip = 100)

	exp.run_experiments_multiple(SP500(), {},\
						 [ARMA(),\
						  ARIMA(),\
						  OnlineWaveFilteringParameterFree(),\
						  OnlineWaveFilteringParameterFree(),\
						  OnlineWaveFilteringParameterFree()
						  ],\
						 [{'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'max_k' : 20, 'action_dim': 1, 'out_dim': 1, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
						  {'max_k' : 50, 'action_dim': 1, 'out_dim': 1, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
						  {'max_k' : 100, 'action_dim': 1, 'out_dim': 1, 'opt': Hedge(), 'optForSubPredictors': FTRL()}
						  ],\
						 ['ARMA_OGD',\
						  'ARIMA_OGD',\
						  'OnlineWaveFilteringParameterFree20',\
						  'OnlineWaveFilteringParameterFree50',\
						  'OnlineWaveFilteringParameterFree100'
						  ],\
						 n_runs = 20,\
						 plotter = plotting,\
						 verbose = True,
						 action_generator = ProblemBasedAction(SP500()))
Example #3
0
def artif_exp_4():
    exp = Experiment()
    plotting = Plotter()
    plotting.initialize(yscale='log',
                        filt="median, movingAverage",
                        skip=100,
                        ylabel="Average Squared Error",
                        col=['c', 'r', 'g', 'orange', 'k'])

    T = 1000

    ag = RandomAction(mu=0, sigma=0.3)

    exp.run_experiments_multiple(Setting4(), {"timesteps" : T},\
          [OnlineWaveFilteringParameterFree(),\
           OnlineWaveFiltering(),\
           EMKalmanFilter(),\
           SSIDKalmanFilter(),\
           Consistency()],\
          [{'timesteps': T, 'max_k' : 30, 'action_dim': 1, 'out_dim': 1, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
           {'timesteps': T, 'k' : 10, 'lr': 1e-2, 'action_dim': 1, 'out_dim': 1, 'R_m': 3.0},\
           {'timesteps': T, 'order': 2, 'data': 100, 'iter': 500},\
           {'timesteps': T, 'order': 2, 'data': 100},\
           {'timesteps': T, 'out_dim': 1}],\
          ['OnlineWaveFilteringParameterFree',\
           'OnlineWaveFiltering',\
           'EM',\
           '4SID',\
           'Consistency'],\
          n_runs = 20,\
          plotter = plotting,\
          action_generator = ag,\
          verbose = True)
Example #4
0
def artif_exp_2():
    exp = Experiment()
    plotting = Plotter()
    plotting.initialize(yscale='log',
                        filt="median, movingAverage",
                        skip=100,
                        ylabel="Average Squared Error",
                        col=['c', 'r', 'g', 'orange', 'k'])

    A = np.array([[0.999, 0], [0, 0.5]])
    B = np.array([[1.0], [1.0]])
    C = np.array([[1.0, 1.0]])
    D = np.array([[0.0]])

    T = 1000

    ag = RandomAction(mu=0, sigma=0.3)

    exp.run_experiments_multiple(LDS(), {"timesteps" : T, 'action_dim': 1, 'hidden_dim': 2, 'out_dim': 1, 'partially_observable': True,\
            'system_params': {'A': A, 'B' : B, 'C': C, 'D': D, 'noise_distribution': 'normal'}},\
          [OnlineWaveFilteringParameterFree(),\
           OnlineWaveFiltering(),\
           EMKalmanFilter(),\
           SSIDKalmanFilter(),\
           Consistency()],\
          [{'timesteps': T, 'max_k' : 30, 'action_dim': 1, 'out_dim': 1, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
           {'timesteps': T, 'k' : 10, 'lr': 1e-3, 'action_dim': 1, 'out_dim': 1, 'R_m': 1.0},\
           {'timesteps': T, 'order': 2, 'data': 100, 'iter': 500},\
           {'timesteps': T, 'order': 2, 'data': 100},\
           {'timesteps': T, 'out_dim': 1}],\
          ['OnlineWaveFilteringParameterFree',\
           'OnlineWaveFiltering',\
           'EM',\
           '4SID',\
           'Consistency'],\
          n_runs = 20,\
          plotter = plotting,\
          action_generator = ag,\
          verbose = True)
Example #5
0
def artif_exp_5():
    exp = Experiment()
    plotting = Plotter()
    plotting.initialize(yscale='log',
                        filt="median, movingAverage",
                        skip=100,
                        ylabel="Average Squared Error",
                        col=['c', 'r', 'g', 'k'])

    A = np.diag([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
    B = np.eye(10)
    C = np.random.normal(size=(10, 10)) * 0.3
    D = np.zeros((10, 10))

    T = 1000

    ag = BlockAction(prob_repeat=0.8, sigma=0.3)

    exp.run_experiments_multiple(LDS(), {'action_dim': 10, 'hidden_dim': 10, 'out_dim': 10, 'partially_observable': True,\
            'system_params': {'A': A, 'B' : B, 'C': C, 'D': D}},\
          [OnlineWaveFilteringParameterFree(),\
           OnlineWaveFiltering(),\
           EMKalmanFilter(),\
           Consistency()],\
          [{'timesteps': T, 'max_k' : 30, 'action_dim': 10, 'out_dim': 10, 'opt': Hedge(), 'optForSubPredictors': FTRL()},\
           {'timesteps': T, 'k' : 30, 'lr': 1e-4, 'action_dim': 10, 'out_dim': 10, 'R_m': 5},\
           {'timesteps': T, 'order': 10, 'data': 100, 'iter': 500},\
           {'timesteps': T, 'out_dim': 10}],\
          ['OnlineWaveFilteringParameterFree',\
           'OnlineWaveFiltering',\
           'EM',\
           'Consistency'],\
          action_generator = ag,\
          n_runs = 20,\
          plotter = plotting,\
          verbose = True)
Example #6
0
def sp500Tuning():
	exp = Experiment()
	plotting = Plotter()
	plotting.initialize(filt = "movingAverage", skip = 100)
	exp.run_experiments_multiple(SP500(), {},\
						 [ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ARIMA(),\
						  ],\
						 [{'p' : 8, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 8, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 8, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 8, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 8, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 8, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 16, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 16, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 16, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 16, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 16, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 16, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 32, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 32, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 32, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 32, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 32, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 32, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 64, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 8, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 8, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 8, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 8, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 8, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 8, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 16, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 32, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 32, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 32, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 32, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 32, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 32, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})},\
						  {'p' : 64, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':10.0})},\
						  {'p' : 64, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':1.0})},\
						  {'p' : 64, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.1})},\
						  {'p' : 64, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.01})},\
						  {'p' : 64, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.001})},\
						  {'p' : 64, 'd' : 2, 'optimizer': RealOGD(hyperparameters={'lr':0.0001})}
						  ],\
						 ['ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD',\
						  'ARIMA_OGD'
						  ],\
						 n_runs = 5,\
						 plotter = plotting,\
						 verbose = True,
						 action_generator = ProblemBasedAction(SP500()))
Example #7
0
def roomTemperatureTuning():
	exp = Experiment()
	plotting = Plotter()
	plotting.initialize(filt = "median, movingAverage", skip = 0, printLast = True)

	dimension = 20

	exp.run_experiments_multiple(RoomTemperature(), {},\
						 [VAR(),\
						  VAR(),\
						  VAR(),\
						  VAR(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD(),\
						  ECVARMAOGD()
						 ],\
						 [{'p' : 8, 'dim': dimension},\
						  {'p' : 16, 'dim': dimension},\
						  {'p' : 32, 'dim': dimension},\
						  {'p' : 64, 'dim': dimension},\
						  {'p' : 8, 'dim': dimension, 'lr': 1},\
						  {'p' : 16, 'dim': dimension, 'lr': 1},\
						  {'p' : 32, 'dim': dimension, 'lr': 1},\
						  {'p' : 64, 'dim': dimension, 'lr': 1},\
						  {'p' : 8, 'dim': dimension, 'lr': 0.1},\
						  {'p' : 16, 'dim': dimension, 'lr': 0.1},\
						  {'p' : 32, 'dim': dimension, 'lr': 0.1},\
						  {'p' : 64, 'dim': dimension, 'lr': 0.1},\
						  {'p' : 8, 'dim': dimension, 'lr': 0.01},\
						  {'p' : 16, 'dim': dimension, 'lr': 0.01},\
						  {'p' : 32, 'dim': dimension, 'lr': 0.01},\
						  {'p' : 64, 'dim': dimension, 'lr': 0.01},\
						  {'p' : 8, 'dim': dimension, 'lr': 0.001},\
						  {'p' : 16, 'dim': dimension, 'lr': 0.001},\
						  {'p' : 32, 'dim': dimension, 'lr': 0.001},\
						  {'p' : 64, 'dim': dimension, 'lr': 0.001}
						  ],\
						 ['VAR_8',\
						  'VAR_16',\
						  'VAR_32',\
						  'VAR_64',\
						  'ECVARMA_OGD8_1',\
						  'ECVARMA_OGD16_1',\
						  'ECVARMA_OGD32_1',\
						  'ECVARMA_OGD64_1',\
						  'ECVARMA_OGD8_01',\
						  'ECVARMA_OGD16_01',\
						  'ECVARMA_OGD32_01',\
						  'ECVARMA_OGD64_01',\
						  'ECVARMA_OGD8_001',\
						  'ECVARMA_OGD16_001',\
						  'ECVARMA_OGD32_001',\
						  'ECVARMA_OGD64_001',\
						  'ECVARMA_OGD8_0001',\
						  'ECVARMA_OGD16_0001',\
						  'ECVARMA_OGD32_0001',\
						  'ECVARMA_OGD64_0001'
						  ],\
						 n_runs = 5,\
						 plotter = plotting,\
						 verbose = True,
						 action_generator = ProblemBasedAction(RoomTemperature()))