Repository: autogluon/autogluon

Issue:
[BUG] Presets in TimeSeriesPredictor are not working well.
- [x] I have checked that this bug exists on the latest stable version of AutoGluon
- [x] and/or I have checked that this bug exists on the latest mainline of AutoGluon via source installation

**Describe the bug**

I realized that only 2 preset options are working well. I tested the new release of TimeSeriesPredictor on different presets, i.e ("best_quality", "high_quality", "good_quality", "medium_quality", "low_quality", and "low_quality_hpo").

Only "medium_quality" and  "low_quality" are working. I noticed the other presets forces hyperparameterization of the models, then, when it starts it breaks.

**To Reproduce**
1) ```predictor = TimeSeriesPredictor(
    target="value",
    prediction_length=prediction_length,
    eval_metric="MAPE",
    verbosity=4)
    
    predictor.fit(train_data=test_data,
    presets ='best_quality')```

2) ```predictor = TimeSeriesPredictor(
    target="value",
    prediction_length=prediction_length,
    eval_metric="MAPE",
    verbosity=4)

    predictor.fit(train_data=test_data,
    presets ='medium_quality')```

**Screenshots**
1)![image](https://user-images.githubusercontent.com/32521301/175453958-26c759cf-4584-48e1-9541-752a49d2ab0e.png)

2)![image](https://user-images.githubusercontent.com/32521301/175454034-d7151c62-4859-43be-a90a-d4e5124485d3.png)

**Installed Versions**
Which version of AutoGluon are you are using?  
0.5.0


Discussion:

Resolving patch:
diff --git a/timeseries/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py b/timeseries/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py
--- a/timeseries/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py
+++ b/timeseries/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py
@@ -127,6 +127,7 @@ def get_params(self) -> dict:
                 prediction_length=self.prediction_length,
                 quantile_levels=self.quantile_levels,
                 metadata=self.metadata,
+                target=self.target,
             )
         )
         return params
@@ -356,10 +357,10 @@ def _hyperparameter_tune(
             )
             return skip_hpo(self, train_data, val_data, time_limit=time_limit)
         else:
-            logger.debug(f"Hyperparameter search space for {self.name}: ")
+            logger.debug(f"\tHyperparameter search space for {self.name}: ")
             for hyperparameter in search_space:
                 if isinstance(search_space[hyperparameter], ag.Space):
-                    logger.debug(f"{hyperparameter}: {search_space[hyperparameter]}")
+                    logger.debug(f"\t{hyperparameter}: {search_space[hyperparameter]}")
 
         dataset_train_filename = "dataset_train.pkl"
         train_path = self.path + dataset_train_filename


Test patch:
diff --git a/timeseries/tests/unittests/test_predictor.py b/timeseries/tests/unittests/test_predictor.py
--- a/timeseries/tests/unittests/test_predictor.py
+++ b/timeseries/tests/unittests/test_predictor.py
@@ -5,6 +5,7 @@
 import pytest
 from gluonts.model.seq2seq import MQRNNEstimator
 
+import autogluon.core as ag
 from autogluon.timeseries.dataset import TimeSeriesDataFrame
 from autogluon.timeseries.models import DeepARModel
 from autogluon.timeseries.models.gluonts.models import GenericGluonTSModelFactory
@@ -13,9 +14,8 @@
 from .common import DUMMY_TS_DATAFRAME
 
 TEST_HYPERPARAMETER_SETTINGS = [
-    "toy",
     {"SimpleFeedForward": {"epochs": 1}},
-    {"DeepAR": {"epochs": 1}, "SimpleFeedForward": {"epochs": 1}},
+    {"AutoETS": {}, "SimpleFeedForward": {"epochs": 1}},
 ]
 
 
@@ -184,6 +184,57 @@ def test_given_hyperparameters_when_predictor_called_and_loaded_back_then_all_mo
         assert not np.any(np.isnan(predictions))
 
 
+@pytest.mark.parametrize("target_column", ["target", "custom"])
+@pytest.mark.parametrize(
+    "hyperparameters",
+    [
+        {"AutoETS": {}, "SimpleFeedForward": {"epochs": 1}},
+        {"AutoETS": {}, "SimpleFeedForward": {"epochs": ag.Int(1, 3)}},
+    ],
+)
+def test_given_hp_spaces_and_custom_target_when_predictor_called_predictor_can_predict(
+    temp_model_path, hyperparameters, target_column
+):
+    df = DUMMY_TS_DATAFRAME.rename(columns={"target": target_column})
+
+    fit_kwargs = dict(
+        train_data=df,
+        hyperparameters=hyperparameters,
+        tuning_data=df,
+    )
+    init_kwargs = dict(path=temp_model_path, prediction_length=2)
+    if target_column != "target":
+        init_kwargs.update({"target": target_column})
+
+    for hps in hyperparameters.values():
+        if any(isinstance(v, ag.Space) for v in hps.values()):
+            fit_kwargs.update(
+                {
+                    "hyperparameter_tune_kwargs": {
+                        "scheduler": "local",
+                        "searcher": "random",
+                        "num_trials": 2,
+                    },
+                }
+            )
+            break
+
+    predictor = TimeSeriesPredictor(**init_kwargs)
+    predictor.fit(**fit_kwargs)
+
+    assert predictor.get_model_names()
+
+    for model_name in predictor.get_model_names():
+        predictions = predictor.predict(df, model=model_name)
+
+        assert isinstance(predictions, TimeSeriesDataFrame)
+
+        predicted_item_index = predictions.index.levels[0]
+        assert all(predicted_item_index == df.index.levels[0])  # noqa
+        assert all(len(predictions.loc[i]) == 2 for i in predicted_item_index)
+        assert not np.any(np.isnan(predictions))
+
+
 @pytest.mark.parametrize("hyperparameters", TEST_HYPERPARAMETER_SETTINGS)
 def test_given_hyperparameters_when_predictor_called_and_loaded_back_then_loaded_learner_can_predict(
     temp_model_path, hyperparameters