Repository: sktime/sktime

Issue:
[BUG] ColumnSelect missing tag`"skip-inverse-transform"`
**Describe the bug**
<!--
A clear and concise description of what the bug is.
-->
The ColumnSelect is missing the tag  `"skip-inverse-transform"`. Thus, a TransformedTargetForecaster subsetting the `y` input will fail when calling predict.

**To Reproduce**
<!--
Add a Minimal, Complete, and Verifiable example (for more details, see e.g. https://stackoverflow.com/help/mcve

If the code is too long, feel free to put it in a public gist and link it in the issue: https://gist.github.com
-->



```python
from sktime.forecasting.naive import NaiveForecaster
from sktime.transformations.series.subset import ColumnSelect
from sktime.datasets import load_longley
y = load_longley()[1][["GNP", "UNEMP"]]
fc = ColumnSelect(["GNP"]) * NaiveForecaster()
fc.fit(y)
fc.predict(fh=[1])
```

**Expected behavior**
<!--
A clear and concise description of what you expected to happen.
-->
I would expect that the forecast is performed only on the selected time series without raising an error.

**Additional context**
<!--
Add any other context about the problem here.
-->
This would be fixed by just adding the tag `skip-inverse-transform` to ColumnSelect.


Discussion:

Patch:
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 3441d6560..ed91edebc 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1740,6 +1740,7 @@
       "name": "Benedikt Heidrich",
       "profile": "https://github.com/benheid",
       "contributions": [
+        "bug",
         "code"
       ]
     },
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index ad94a9858..238a9a1e6 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -50,7 +50,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
     <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/BandaSaiTejaReddy"><img src="https://avatars0.githubusercontent.com/u/31387911?v=4?s=100" width="100px;" alt="BANDASAITEJAREDDY"/><br /><sub><b>BANDASAITEJAREDDY</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=BandaSaiTejaReddy" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=BandaSaiTejaReddy" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/badrmarani"><img src="https://avatars.githubusercontent.com/badrmarani?s=100" width="100px;" alt="Badr-Eddine Marani"/><br /><sub><b>Badr-Eddine Marani</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=badrmarani" title="Code">💻</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/benheid"><img src="?s=100" width="100px;" alt="Benedikt Heidrich"/><br /><sub><b>Benedikt Heidrich</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=benheid" title="Code">💻</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/benheid"><img src="?s=100" width="100px;" alt="Benedikt Heidrich"/><br /><sub><b>Benedikt Heidrich</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Abenheid" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=benheid" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/benjaminbluhm"><img src="?s=100" width="100px;" alt="Benjamin Bluhm"/><br /><sub><b>Benjamin Bluhm</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=benjaminbluhm" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=benjaminbluhm" title="Documentation">📖</a> <a href="#example-benjaminbluhm" title="Examples">💡</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://haskarb.github.io/"><img src="https://avatars.githubusercontent.com/u/20501023?v=4?s=100" width="100px;" alt="Bhaskar Dhariyal"/><br /><sub><b>Bhaskar Dhariyal</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=haskarb" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=haskarb" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/BINAYKUMAR943"><img src="https://avatars.githubusercontent.com/u/38756834?v=4?s=100" width="100px;" alt="Binay Kumar"/><br /><sub><b>Binay Kumar</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=BINAYKUMAR943" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=BINAYKUMAR943" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=BINAYKUMAR943" title="Tests">⚠️</a></td>
diff --git a/sktime/transformations/series/subset.py b/sktime/transformations/series/subset.py
index a578e966d..d82b6a0ee 100644
--- a/sktime/transformations/series/subset.py
+++ b/sktime/transformations/series/subset.py
@@ -160,6 +160,7 @@ class ColumnSelect(BaseTransformer):
         "fit_is_empty": True,
         "univariate-only": False,
         "capability:inverse_transform": False,
+        "skip-inverse-transform": True,
     }
 
     def __init__(self, columns=None, integer_treatment="col", index_treatment="remove"):


Test patch:
diff --git a/sktime/transformations/series/tests/test_subset.py b/sktime/transformations/series/tests/test_subset.py
index 2137b95e5..f400a5794 100644
--- a/sktime/transformations/series/tests/test_subset.py
+++ b/sktime/transformations/series/tests/test_subset.py
@@ -7,6 +7,7 @@ import pandas as pd
 import pytest
 
 from sktime.datasets import load_airline, load_longley
+from sktime.forecasting.naive import NaiveForecaster
 from sktime.transformations.series.subset import ColumnSelect, IndexSubset
 
 
@@ -49,3 +50,10 @@ def test_columnselect_int():
     X_subset = transformer.fit_transform(X=X)
 
     assert X_subset.columns.equals(X.columns[[0, 2, 4]])
+
+
+def test_columnselect_as_first_step_in_transformedtargetforecaster():
+    y = load_longley()[1][["GNP", "UNEMP"]]
+    fc = ColumnSelect(["GNP"]) * NaiveForecaster()
+    fc.fit(y)
+    fc.predict(fh=[1])