Repository: sktime/sktime

Issue:
[BUG] FeatureSelection on pd-multiindex:  Error in check_is_mtype, more than one mtype identified: ['pd-multiindex', 'pd_DataFrame_Table']
**Describe the bug**

Hello everyone ! First, thank you for the great tool!
I encountered an error when trying to select the features of my dataset containing time-series panel data.
I converted the dataset to pd-multiIndex, following the 'examples/AA_datatypes_and_datasets.ipynb' tutorial and when I try to apply the fit_transform function, the following error appears:

```python
TypeError                                 Traceback (most recent call last)
Input In [9], in <cell line: 2>()
      1 transformer = FeatureSelection(method="feature-importances", n_columns = 20)
----> 2 Xt_GradientBoostingRegressor = transformer.fit_transform(X, y)

File ~\Miniconda3\lib\site-packages\sktime\transformations\base.py:434, in BaseTransformer.fit_transform(self, X, y)
    380 """Fit to data, then transform it.
    381 
    382 Fits the transformer to X and y and returns a transformed version of X.
   (...)
    430         Example: i-th instance of the output is the i-th window running over `X`
    431 """
    432 # Non-optimized default implementation; override when a better
    433 # method is possible for a given algorithm.
--> 434 return self.fit(X, y).transform(X, y)

File ~\Miniconda3\lib\site-packages\sktime\transformations\base.py:293, in BaseTransformer.fit(self, X, y)
    290     raise ValueError(f"{self.__class__.__name__} requires `y` in `fit`.")
    292 # check and convert X/y
--> 293 X_inner, y_inner = self._check_X_y(X=X, y=y)
    295 # checks and conversions complete, pass to inner fit
    296 #####################################################
    297 vectorization_needed = isinstance(X_inner, VectorizedDF)

File ~\Miniconda3\lib\site-packages\sktime\transformations\base.py:690, in BaseTransformer._check_X_y(self, X, y, return_metadata)
    687 elif X_scitype == "Hierarchical":
    688     y_possible_scitypes = ["Table", "Panel", "Hierarchical"]
--> 690 y_valid, _, y_metadata = check_is_scitype(
    691     y, scitype=y_possible_scitypes, return_metadata=True, var_name="y"
    692 )
    693 if not y_valid:
    694     raise TypeError("y " + msg_invalid_input)

File ~\Miniconda3\lib\site-packages\sktime\datatypes\_check.py:429, in check_is_scitype(obj, scitype, return_metadata, var_name, exclude_mtypes)
    426 # there are three options on the result of check_is_mtype:
    427 # a. two or more mtypes are found - this is unexpected and an error with checks
    428 if len(found_mtype) > 1:
--> 429     raise TypeError(
    430         f"Error in check_is_mtype, more than one mtype identified: {found_mtype}"
    431     )
    432 # b. one mtype is found - then return that mtype
    433 elif len(found_mtype) == 1:

TypeError: Error in check_is_mtype, more than one mtype identified: ['pd-multiindex', 'pd_DataFrame_Table']
```
Also, I was wondering if there was a way to retrieve the numeric value of feature importance, in order to generate a plot representing feature importance for the dataset?

Thank you in advance for your help !

**To Reproduce**
<!--

-->

```python
df_multiIndex = df.set_index(['ID', 'Day'])

y = pd.DataFrame(df_multiIndex['ProdValue']) ## value to predict
X = df_multiIndex.drop(['ProdValue'], axis = 1) ## exogenous variables

transformer = FeatureSelection(method="feature-importances", n_columns = 20)
Xt_GradientBoostingRegressor  = transformer.fit_transform(X, y) 
```

**Expected behavior**

Feature selection taking into account the time series panel data


**Versions**

<details>
System:
    python: 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
executable: C:\Users\celie\Miniconda3\python.exe
   machine: Windows-10

Python dependencies:
      pip: 21.2.4
      setuptools: 61.2.0
      sklearn: 1.0.2
      sktime: 0.11.4
      statsmodels: 0.12.1
      numpy: 1.22.3
      scipy: 1.7.3
      pandas: 1.4.2
      matplotlib: 3.5.1
      joblib: 1.1.0
      numba: 0.53.1
      pmdarima: 1.8.5
      tsfresh: 0.17.0

</details>

<!-- Thanks for contributing! -->



Discussion:
can you kindly paste the code that produces the error? Minimal code would be great, without loading any data etc.

Resolving patch:
diff --git a/sktime/transformations/base.py b/sktime/transformations/base.py
--- a/sktime/transformations/base.py
+++ b/sktime/transformations/base.py
@@ -677,12 +677,14 @@ def _scitype_A_higher_B(scitypeA, scitypeB):
 
         if y_inner_mtype != ["None"] and y is not None:
 
-            if X_scitype == "Series":
+            if "Table" in y_inner_scitype:
+                y_possible_scitypes = "Table"
+            elif X_scitype == "Series":
                 y_possible_scitypes = "Series"
             elif X_scitype == "Panel":
-                y_possible_scitypes = ["Table", "Panel"]
+                y_possible_scitypes = "Panel"
             elif X_scitype == "Hierarchical":
-                y_possible_scitypes = ["Table", "Panel", "Hierarchical"]
+                y_possible_scitypes = ["Panel", "Hierarchical"]
 
             y_valid, _, y_metadata = check_is_scitype(
                 y, scitype=y_possible_scitypes, return_metadata=True, var_name="y"


Test patch: