Skip to content

Commit

Permalink
Investigate Large Horizon Models #213. Improved perf logging. Display…
Browse files Browse the repository at this point in the history
… the first and last multistep forecast perfs. Updated these perfs
  • Loading branch information
antoinecarme committed Mar 8, 2023
1 parent 1f56453 commit a066392
Show file tree
Hide file tree
Showing 4 changed files with 270 additions and 154 deletions.
111 changes: 70 additions & 41 deletions tests/references/heroku/test_air_passengers_heroku.log
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,24 @@ INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'AirPassengers', 'T
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'RelDiff_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'Diff_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'CumSum_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 6.794, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': '_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 8.207, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'Diff_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 8.798, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'RelDiff_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 9.301, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'CumSum_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 9.508, ('SIGNAL_TRAINING', {'Signals': ['AirPassengers'], 'Transformations': [('AirPassengers', 'None', '_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', 'CumSum_', 'T+S+R')], 'Cores': 4}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 7.183, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'CumSum_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 8.094, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': '_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 9.196, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'RelDiff_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 9.5, ('TRAINING', {'Signal': 'AirPassengers', 'Transformation': 'Diff_AirPassengers', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 9.782, ('SIGNAL_TRAINING', {'Signals': ['AirPassengers'], 'Transformations': [('AirPassengers', 'None', '_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', 'CumSum_', 'T+S+R')], 'Cores': 4}))
INFO:pyaf.timing:('OPERATION_START', ('FINALIZE_TRAINING', {'Signals': ['AirPassengers'], 'Transformations': [('AirPassengers', [('AirPassengers', 'None', 'CumSum_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_START', ('MODEL_SELECTION', {'Signal': 'AirPassengers', 'Transformations': [('AirPassengers', 'None', 'CumSum_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.204, ('MODEL_SELECTION', {'Signal': 'AirPassengers', 'Transformations': [('AirPassengers', 'None', 'CumSum_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_START', ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'AirPassengers', 'Model': 'Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE_residue_NoAR'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 1.603, ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'AirPassengers', 'Model': 'Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE_residue_NoAR'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.109, ('MODEL_SELECTION', {'Signal': 'AirPassengers', 'Transformations': [('AirPassengers', 'None', 'CumSum_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_START', ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'AirPassengers', 'Model': 'Diff_AirPassengers_ConstantTrend_residue_Cycle_12_residue_NoAR'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.606, ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'AirPassengers', 'Model': 'Diff_AirPassengers_ConstantTrend_residue_Cycle_12_residue_NoAR'}))
INFO:pyaf.timing:('OPERATION_START', ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'AirPassengers'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 1.597, ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'AirPassengers'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 3.404, ('FINALIZE_TRAINING', {'Signals': ['AirPassengers'], 'Transformations': [('AirPassengers', [('AirPassengers', 'None', 'CumSum_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 12.993, ('TRAINING', {'Signals': ['AirPassengers'], 'Horizons': {'AirPassengers': 7}}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.601, ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'AirPassengers'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 1.317, ('FINALIZE_TRAINING', {'Signals': ['AirPassengers'], 'Transformations': [('AirPassengers', [('AirPassengers', 'None', 'CumSum_', 'T+S+R'), ('AirPassengers', 'None', 'Diff_', 'T+S+R'), ('AirPassengers', 'None', 'RelDiff_', 'T+S+R'), ('AirPassengers', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 11.104, ('TRAINING', {'Signals': ['AirPassengers'], 'Horizons': {'AirPassengers': 7}}))
INFO:pyaf.timing:('OPERATION_START', ('FORECASTING', {'Signals': ['AirPassengers'], 'Horizon': 7}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.7, ('FORECASTING', {'Signals': ['AirPassengers'], 'Horizon': 7}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.383, ('FORECASTING', {'Signals': ['AirPassengers'], 'Horizon': 7}))
INFO:pyaf.timing:('OPERATION_START', ('FORECASTING', {'Signals': ['AirPassengers'], 'Horizon': 7}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.605, ('FORECASTING', {'Signals': ['AirPassengers'], 'Horizon': 7}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.398, ('FORECASTING', {'Signals': ['AirPassengers'], 'Horizon': 7}))
Transformation DecompositionType ... Voting Complexity
1 Diff_AirPassengers T+S+R ... 251.7143 MSSSS
3 Diff_AirPassengers T+S+R ... 251.1429 MSSSS
Expand All @@ -45,10 +45,10 @@ INFO:pyaf.timing:('OPERATION_END_ELAPSED', 0.605, ('FORECASTING', {'Signals': ['
Forecast Columns Index(['time', 'AirPassengers', 'row_number', 'time_Normalized',
'Diff_AirPassengers', 'Diff_AirPassengers_ConstantTrend',
'Diff_AirPassengers_ConstantTrend_residue', 'cycle_internal',
'Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE',
'Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE_residue',
'Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE_residue_NoAR',
'Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE_residue_NoAR_residue',
'Diff_AirPassengers_ConstantTrend_residue_Cycle_12',
'Diff_AirPassengers_ConstantTrend_residue_Cycle_12_residue',
'Diff_AirPassengers_ConstantTrend_residue_Cycle_12_residue_NoAR',
'Diff_AirPassengers_ConstantTrend_residue_Cycle_12_residue_NoAR_residue',
'AirPassengers_Transformed', 'Diff_AirPassengers_Trend',
'Diff_AirPassengers_Trend_residue', 'Diff_AirPassengers_Cycle',
'Diff_AirPassengers_Cycle_residue', 'Diff_AirPassengers_AR',
Expand Down Expand Up @@ -88,48 +88,77 @@ Forecasts
<ModelInfo>
{
"AirPassengers": {
"Complexity": {
"AR": "S",
"Cycle": "S",
"Decomposition": "S",
"Transformation": "M",
"Trend": "S"
},
"Dataset": {
"Signal": "AirPassengers",
"Time": {
"Horizon": 7,
"TimeMinMax": [
"1949.0",
"1960.91666666667"
],
"TimeDelta": "0.08333333333333333",
"TimeMax": "1960.91666666667",
"TimeMin": "1949.0",
"TimeVariable": "time"
},
"Training_Signal_Length": 144
},
"Model": {
"AR_Model": "NoAR",
"Best_Decomposition": "Diff_AirPassengers_ConstantTrend_residue_bestCycle_byMAPE_residue_NoAR",
"Best_Decomposition": "Diff_AirPassengers_ConstantTrend_residue_Cycle_12_residue_NoAR",
"Cycle": "Cycle_12",
"Signal_Decomposition_Type": "T+S+R",
"Signal_Transoformation": "Difference",
"Trend": "ConstantTrend"
},
"Model_Performance": {
"AUC": 0.5306,
"COMPLEXITY": {
"AR": "S",
"Cycle": "S",
"Decomposition": "S",
"Transformation": "M",
"Trend": "S"
"1": {
"AUC": 0.5306,
"DiffSMAPE": 0.07,
"ErrorMean": -14.1071,
"ErrorStdDev": 37.405,
"KS": 0.2857,
"KendallTau": 0.8128,
"Length": 28,
"LnQ": 0.218,
"MAE": 29.8929,
"MAPE": 0.0679,
"MASE": 0.7515,
"MannWhitneyU": 416.0,
"MedAE": 23.0,
"Pearson": 0.9559,
"R2": 0.6126,
"RMSE": 39.9768,
"SMAPE": 0.07,
"Signal": "AirPassengers_Forecast_1"
},
"CRPS": 10.4259,
"KS": 0.2857,
"KendallTau": 0.8128,
"LnQ": 0.218,
"MAE": 29.8929,
"MAPE": 0.0679,
"MASE": 0.7515,
"MannWhitneyU": 416.0,
"MedAE": 23.0,
"RMSE": 39.9768
}
"7": {
"AUC": 0.5306,
"DiffSMAPE": 0.07,
"ErrorMean": -14.1071,
"ErrorStdDev": 37.405,
"KS": 0.2857,
"KendallTau": 0.8128,
"Length": 28,
"LnQ": 0.218,
"MAE": 29.8929,
"MAPE": 0.0679,
"MASE": 0.7515,
"MannWhitneyU": 416.0,
"MedAE": 23.0,
"Pearson": 0.9559,
"R2": 0.6126,
"RMSE": 39.9768,
"SMAPE": 0.07,
"Signal": "AirPassengers_Forecast_7"
}
},
"Model_Selection_Criterion": "MAPE"
},
"Training_Time": 12.993
"Training_Time": 11.104
}
</ModelInfo>

Expand Down
101 changes: 65 additions & 36 deletions tests/references/heroku/test_ozone_exog_heroku.log
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,27 @@ DATASET_FINAL_COLUMNS Index(['Month', 'Ozone'], dtype='object')
https://raw.githubusercontent.com/antoinecarme/pyaf/master/data/ozone-la-exogenous-3.csv
TRAIN_PARAMS (216, 2) Index(['Month', 'Ozone'], dtype='object') Month Ozone 12
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone', 'Transformation': '_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'RelDiff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'Diff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'RelDiff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_START', ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'CumSum_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 81.382, ('TRAINING', {'Signal': 'Ozone', 'Transformation': '_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 82.503, ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'Diff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 87.804, ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'CumSum_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 101.191, ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'RelDiff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 101.602, ('SIGNAL_TRAINING', {'Signals': ['Ozone'], 'Transformations': [('Ozone', 'None', '_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', 'CumSum_', 'T+S+R')], 'Cores': 4}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 68.189, ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'CumSum_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 71.799, ('TRAINING', {'Signal': 'Ozone', 'Transformation': '_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 77.288, ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'Diff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 92.983, ('TRAINING', {'Signal': 'Ozone', 'Transformation': 'RelDiff_Ozone', 'DecompositionType': 'T+S+R'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 93.682, ('SIGNAL_TRAINING', {'Signals': ['Ozone'], 'Transformations': [('Ozone', 'None', '_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', 'CumSum_', 'T+S+R')], 'Cores': 4}))
INFO:pyaf.timing:('OPERATION_START', ('FINALIZE_TRAINING', {'Signals': ['Ozone'], 'Transformations': [('Ozone', [('Ozone', 'None', 'CumSum_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_START', ('MODEL_SELECTION', {'Signal': 'Ozone', 'Transformations': [('Ozone', 'None', 'CumSum_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 2.309, ('MODEL_SELECTION', {'Signal': 'Ozone', 'Transformations': [('Ozone', 'None', 'CumSum_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 1.812, ('MODEL_SELECTION', {'Signal': 'Ozone', 'Transformations': [('Ozone', 'None', 'CumSum_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', '_', 'T+S+R')]}))
INFO:pyaf.timing:('OPERATION_START', ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'Ozone', 'Model': '_Ozone_ConstantTrend_residue_zeroCycle[0.0]_residue_ARX(54)'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 8.097, ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'Ozone', 'Model': '_Ozone_ConstantTrend_residue_zeroCycle[0.0]_residue_ARX(54)'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 7.491, ('UPDATE_BEST_MODEL_PERFS', {'Signal': 'Ozone', 'Model': '_Ozone_ConstantTrend_residue_zeroCycle[0.0]_residue_ARX(54)'}))
INFO:pyaf.timing:('OPERATION_START', ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'Ozone'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 7.293, ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'Ozone'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 17.699, ('FINALIZE_TRAINING', {'Signals': ['Ozone'], 'Transformations': [('Ozone', [('Ozone', 'None', 'CumSum_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 119.379, ('TRAINING', {'Signals': ['Ozone'], 'Horizons': {'Ozone': 12}}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 7.697, ('COMPUTE_PREDICTION_INTERVALS', {'Signal': 'Ozone'}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 17.002, ('FINALIZE_TRAINING', {'Signals': ['Ozone'], 'Transformations': [('Ozone', [('Ozone', 'None', 'CumSum_', 'T+S+R'), ('Ozone', 'None', 'Diff_', 'T+S+R'), ('Ozone', 'None', 'RelDiff_', 'T+S+R'), ('Ozone', 'None', '_', 'T+S+R')])], 'Cores': 1}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 110.689, ('TRAINING', {'Signals': ['Ozone'], 'Horizons': {'Ozone': 12}}))
INFO:pyaf.timing:('OPERATION_START', ('FORECASTING', {'Signals': ['Ozone'], 'Horizon': 12}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 5.499, ('FORECASTING', {'Signals': ['Ozone'], 'Horizon': 12}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 4.793, ('FORECASTING', {'Signals': ['Ozone'], 'Horizon': 12}))
INFO:pyaf.timing:('OPERATION_START', ('FORECASTING', {'Signals': ['Ozone'], 'Horizon': 12}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 5.614, ('FORECASTING', {'Signals': ['Ozone'], 'Horizon': 12}))
INFO:pyaf.timing:('OPERATION_END_ELAPSED', 5.099, ('FORECASTING', {'Signals': ['Ozone'], 'Horizon': 12}))
Transformation DecompositionType ... Voting Complexity
0 _Ozone T+S+R ... 929.5000 LSSSS
1 _Ozone T+S+R ... 923.2500 LSSSS
Expand Down Expand Up @@ -93,14 +93,20 @@ Forecasts
<ModelInfo>
{
"Ozone": {
"Complexity": {
"AR": "L",
"Cycle": "S",
"Decomposition": "S",
"Transformation": "S",
"Trend": "S"
},
"Dataset": {
"Signal": "Ozone",
"Time": {
"Horizon": 12,
"TimeMinMax": [
"1955-01-01 00:00:00",
"1972-12-01 00:00:00"
],
"TimeDelta": "<DateOffset: months=1>",
"TimeMax": "1972-12-01 00:00:00",
"TimeMin": "1955-01-01 00:00:00",
"TimeVariable": "Month"
},
"Training_Signal_Length": 216
Expand All @@ -114,27 +120,50 @@ Forecasts
"Trend": "ConstantTrend"
},
"Model_Performance": {
"AUC": 0.4682,
"COMPLEXITY": {
"AR": "L",
"Cycle": "S",
"Decomposition": "S",
"Transformation": "S",
"Trend": "S"
"1": {
"AUC": 0.4682,
"DiffSMAPE": 0.0864,
"ErrorMean": 0.0825,
"ErrorStdDev": 0.2532,
"KS": 0.1707,
"KendallTau": 0.8375,
"Length": 41,
"LnQ": 0.6325,
"MAE": 0.2213,
"MAPE": 0.0956,
"MASE": 0.3185,
"MannWhitneyU": 787.0,
"MedAE": 0.199,
"Pearson": 0.9733,
"R2": 0.9343,
"RMSE": 0.2663,
"SMAPE": 0.0883,
"Signal": "Ozone_Forecast_1"
},
"CRPS": 0.2377,
"KS": 0.1707,
"KendallTau": 0.8424,
"LnQ": 0.638,
"MAE": 0.2215,
"MAPE": 0.0956,
"MASE": 0.3187,
"MannWhitneyU": 787.0,
"MedAE": 0.2148,
"RMSE": 0.2673
}
"12": {
"AUC": 0.4682,
"DiffSMAPE": 0.0864,
"ErrorMean": 0.0821,
"ErrorStdDev": 0.2544,
"KS": 0.1707,
"KendallTau": 0.8424,
"Length": 41,
"LnQ": 0.638,
"MAE": 0.2215,
"MAPE": 0.0956,
"MASE": 0.3187,
"MannWhitneyU": 787.0,
"MedAE": 0.2148,
"Pearson": 0.9729,
"R2": 0.9338,
"RMSE": 0.2673,
"SMAPE": 0.0883,
"Signal": "Ozone_Forecast_12"
}
},
"Model_Selection_Criterion": "MAPE"
},
"Training_Time": 119.379
"Training_Time": 110.689
}
</ModelInfo>

Expand Down
Loading

0 comments on commit a066392

Please sign in to comment.