Repository: sktime/sktime
Pull request #6136 (2024-03-16 09:12:46)

[DOC]  Added example for lstmfcn and  mlp  # 4264
#### What does this implement/fix? Explain your changes.

Added examples to docstrings in sktime.regression.deep_learning module for rnn.py, lstmfcn.py and mlp.py. Along with it i have chages a parameter name from lr to learning_rate since lr was throwing an error whose image is attached below. 
![Screenshot from 2024-03-16 14-41-33](https://github.com/sktime/sktime/assets/91458535/7a535a54-dc77-4699-9aef-555c63ff4eb2)

#### Does your contribution introduce a new dependency? If yes, which one?

No

#### What should a reviewer concentrate their feedback on?

#### Did you add any tests for the change?
No

#### Any other comments?


#### PR checklist
<!--
Please go through the checklist below. Please feel free to remove points if they are not applicable.
-->

##### For all contributions
- [x] I've added myself to the [list of contributors](https://github.com/sktime/sktime/blob/main/CONTRIBUTORS.md) with any new badges I've earned :-)
  How to: add yourself to the [all-contributors file](https://github.com/sktime/sktime/blob/main/.all-contributorsrc) in the `sktime` root directory (not the `CONTRIBUTORS.md`). Common badges: `code` - fixing a bug, or adding code logic. `doc` - writing or improving documentation or docstrings. `bug` - reporting or diagnosing a bug (get this plus `code` if you also fixed the bug in the PR).`maintenance` - CI, test framework, release.
  See here for [full badge reference](https://allcontributors.org/docs/en/emoji-key)
- [ ] Optionally, I've added myself and possibly others to the [CODEOWNERS](https://github.com/sktime/sktime/blob/main/CODEOWNERS) file - do this if you want to become the owner or maintainer of an estimator you added.
  See here for further details on the [algorithm maintainer role](https://www.sktime.net/en/latest/get_involved/governance.html#algorithm-maintainers).
- [x] The PR title starts with either [ENH], [MNT], [DOC], or [BUG]. [BUG] - bugfix, [MNT] - CI, test framework, [ENH] - adding or improving code, [DOC] - writing or improving documentation or docstrings.

##### For new estimators
- [ ] I've added the estimator to the API reference - in `docs/source/api_reference/taskname.rst`, follow the pattern.
- [ ] I've added one or more illustrative usage examples to the docstring, in a pydocstyle compliant `Examples` section.
- [ ] If the estimator relies on a soft dependency, I've set the `python_dependencies` tag and ensured
  dependency isolation, see the [estimator dependencies guide](https://www.sktime.net/en/latest/developer_guide/dependencies.html#adding-a-soft-dependency).

<!--
Thanks for contributing!
-->



Patch:
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 81384dc23..e9ae4e968 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -2607,6 +2607,17 @@
         "code"
       ]
     },
+    {
+      "login": "ShreeshaM07",
+      "name": "Shreesha M",
+      "avatar_url": "https://avatars.githubusercontent.com/u/120820143?s=400&v=4",
+      "profile": "https://github.com/ShreeshaM07",
+      "contributions": [
+        "bug",
+        "code",
+        "test"
+      ]
+    },
     {
       "login": "geetu040",
       "name": "Armaghan",
@@ -2645,6 +2656,26 @@
         "maintenance"
       ]
     },
+    {
+      "login": "ianspektor",
+      "name": "Ian Spektor",
+      "avatar_url": "https://avatars.githubusercontent.com/u/49082859?v=4",
+      "profile": "https://github.com/ianspektor",
+      "contributions": [
+        "code",
+        "doc"
+      ]
+    },
+    {
+      "login": "javiber",
+      "name": "Javier Berneche",
+      "avatar_url": "https://avatars.githubusercontent.com/u/3588715?v=4",
+      "profile": "https://github.com/javiber",
+      "contributions": [
+        "code",
+        "doc"
+      ]
+    },
     {
       "login": "fnhirwa",
       "name": "Felix Hirwa Nshuti",
@@ -2654,6 +2685,15 @@
         "code",
         "maintenance"
       ]
+    },
+    {
+      "login": "vandit98",
+      "name": "Vandit Tyagi",
+      "avatar_url": "https://avatars.githubusercontent.com/u/91458535?v=4",
+      "profile": "https://github.com/vandit98",
+      "contributions": [
+        "doc"
+      ]
     }
   ]
 }
diff --git a/.github/workflows/update_contributors.yml b/.github/workflows/update_contributors.yml
index 9f9a91c2d..be2743678 100644
--- a/.github/workflows/update_contributors.yml
+++ b/.github/workflows/update_contributors.yml
@@ -1,7 +1,9 @@
 name: Update Contributors
 
 on:
-  push:
+  pull_request:
+    branches:
+      - main
     paths:
       - '.all-contributorsrc'
 
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index aecce99fe..4a62fa940 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -6,7 +6,7 @@ Contributors
 <!-- Please add your badges to .all-contibutorsrc -->
 
 <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
-[![All Contributors](https://img.shields.io/badge/all_contributors-257-orange.svg)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-260-orange.svg)](#contributors)
 <!-- ALL-CONTRIBUTORS-BADGE:END -->
 
 This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -112,12 +112,13 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/FedericoGarza"><img src="https://avatars.githubusercontent.com/u/10517170?v=4?s=100" width="100px;" alt="Federico Garza"/><br /><sub><b>Federico Garza</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=FedericoGarza" title="Code">💻</a> <a href="#example-FedericoGarza" title="Examples">💡</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/felipeangelimvieira"><img src="https://avatars.githubusercontent.com/felipeangelimvieira?s=100" width="100px;" alt="Felipe Angelim"/><br /><sub><b>Felipe Angelim</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=felipeangelimvieira" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Afelipeangelimvieira" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/flix6x"><img src="https://avatars.githubusercontent.com/u/30658763?v=4?s=100" width="100px;" alt="Felix Claessen"/><br /><sub><b>Felix Claessen</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Flix6x" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=Flix6x" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=Flix6x" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/issues?q=author%3AFlix6x" title="Bug reports">🐛</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/fnhirwa"><img src="https://avatars.githubusercontent.com/u/67042527?s=64&v=4?s=100" width="100px;" alt="Felix Hirwa Nshuti"/><br /><sub><b>Felix Hirwa Nshuti</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=fnhirwa" title="Code">💻</a> <a href="#maintenance-fnhirwa" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/fstinner"><img src="https://avatars.githubusercontent.com/u/11679462?v=4?s=100" width="100px;" alt="Florian Stinner"/><br /><sub><b>Florian Stinner</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=fstinner" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=fstinner" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/fspinna"><img src="https://avatars.githubusercontent.com/u/35352023?v=4?s=100" width="100px;" alt="Francesco Spinnato"/><br /><sub><b>Francesco Spinnato</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=fspinna" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/fkiraly"><img src="https://avatars1.githubusercontent.com/u/7985502?v=4?s=100" width="100px;" alt="Franz Kiraly"/><br /><sub><b>Franz Kiraly</b></sub></a><br /><a href="#blog-fkiraly" title="Blogposts">📝</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Afkiraly" title="Bug reports">🐛</a> <a href="#business-fkiraly" title="Business development">💼</a> <a href="https://github.com/sktime/sktime/commits?author=fkiraly" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=fkiraly" title="Documentation">📖</a> <a href="#design-fkiraly" title="Design">🎨</a> <a href="#eventOrganizing-fkiraly" title="Event Organizing">📋</a> <a href="#example-fkiraly" title="Examples">💡</a> <a href="#financial-fkiraly" title="Financial">💵</a> <a href="#fundingFinding-fkiraly" title="Funding Finding">🔍</a> <a href="#ideas-fkiraly" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-fkiraly" title="Maintenance">🚧</a> <a href="#mentoring-fkiraly" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-fkiraly" title="Project Management">📆</a> <a href="#question-fkiraly" title="Answering Questions">💬</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Afkiraly" title="Reviewed Pull Requests">👀</a> <a href="#talk-fkiraly" title="Talks">📢</a> <a href="https://github.com/sktime/sktime/commits?author=fkiraly" title="Tests">⚠️</a> <a href="#tutorial-fkiraly" title="Tutorials">✅</a> <a href="#video-fkiraly" title="Videos">📹</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/freddyaboulton"><img src="https://avatars.githubusercontent.com/u/41651716?v=4?s=100" width="100px;" alt="Freddy A Boulton"/><br /><sub><b>Freddy A Boulton</b></sub></a><br /><a href="#infra-freddyaboulton" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/sktime/sktime/commits?author=freddyaboulton" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/freddyaboulton"><img src="https://avatars.githubusercontent.com/u/41651716?v=4?s=100" width="100px;" alt="Freddy A Boulton"/><br /><sub><b>Freddy A Boulton</b></sub></a><br /><a href="#infra-freddyaboulton" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/sktime/sktime/commits?author=freddyaboulton" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/chernika158"><img src="https://avatars.githubusercontent.com/u/43787741?s=400&v=4?s=100" width="100px;" alt="Galina Chernikova"/><br /><sub><b>Galina Chernikova</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=chernika158" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/goastler"><img src="https://avatars0.githubusercontent.com/u/7059456?v=4?s=100" width="100px;" alt="George Oastler"/><br /><sub><b>George Oastler</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=goastler" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=goastler" title="Tests">⚠️</a> <a href="#platform-goastler" title="Packaging/porting to new platform">📦</a> <a href="#example-goastler" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=goastler" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/geronimos"><img src="https://avatars.githubusercontent.com/u/29955288?s=96&v=4?s=100" width="100px;" alt="Geronimo Bergk"/><br /><sub><b>Geronimo Bergk</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Ageronimos" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=geronimos" title="Code">💻</a></td>
@@ -126,9 +127,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/HYang1996"><img src="https://avatars0.githubusercontent.com/u/44179303?v=4?s=100" width="100px;" alt="HYang1996"/><br /><sub><b>HYang1996</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=HYang1996" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=HYang1996" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=HYang1996" title="Documentation">📖</a> <a href="#tutorial-HYang1996" title="Tutorials">✅</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/BensHamza"><img src="https://avatars.githubusercontent.com/u/96446862?v=4?s=100" width="100px;" alt="Hamza Benslimane"/><br /><sub><b>Hamza Benslimane</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3ABensHamza" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=BensHamza" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/hazrulakmal"><img src="https://avatars.githubusercontent.com/u/24774385?v=4?s=100" width="100px;" alt="Hazrul Akmal"/><br /><sub><b>Hazrul Akmal</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=hazrulakmal" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=hazrulakmal" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Ahazrulakmal" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=hazrulakmal" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/hliebert"><img src="https://avatars.githubusercontent.com/u/20834265?s=100" width="100px;" alt="Helge Liebert"/><br /><sub><b>Helge Liebert</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Ahliebert" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=hliebert" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/hliebert"><img src="https://avatars.githubusercontent.com/u/20834265?s=100" width="100px;" alt="Helge Liebert"/><br /><sub><b>Helge Liebert</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Ahliebert" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=hliebert" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/huayiwei/"><img src="https://avatars3.githubusercontent.com/u/22870735?v=4?s=100" width="100px;" alt="Huayi Wei"/><br /><sub><b>Huayi Wei</b></sub></a><br /><a href="#tutorial-huayicodes" title="Tutorials">✅</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Ifeanyi30"><img src="https://avatars.githubusercontent.com/u/49926145?v=4?s=100" width="100px;" alt="Ifeanyi30"/><br /><sub><b>Ifeanyi30</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Ifeanyi30" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/iljamaurer"><img src="https://avatars.githubusercontent.com/u/45882103?v=4?s=100" width="100px;" alt="Ilja Maurer"/><br /><sub><b>Ilja Maurer</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=iljamaurer" title="Code">💻</a></td>
@@ -137,9 +138,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ishannangia001"><img src="https://avatars.githubusercontent.com/u/29480389?v=4?s=100" width="100px;" alt="Ishan Nangia"/><br /><sub><b>Ishan Nangia</b></sub></a><br /><a href="#ideas-ishannangia001" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jnrusson1"><img src="https://avatars.githubusercontent.com/u/51986332?v=4?s=100" width="100px;" alt="Jack Russon"/><br /><sub><b>Jack Russon</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jnrusson1" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="http://www.timeseriesclassification.com/"><img src="https://avatars0.githubusercontent.com/u/44509982?v=4?s=100" width="100px;" alt="James Large"/><br /><sub><b>James Large</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=James-Large" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=James-Large" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=James-Large" title="Tests">⚠️</a> <a href="#infra-James-Large" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-James-Large" title="Maintenance">🚧</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/jambo6"><img src="https://https://avatars.githubusercontent.com/jambo6?s=100" width="100px;" alt="James Morrill"/><br /><sub><b>James Morrill</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jambo6" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/jambo6"><img src="https://https://avatars.githubusercontent.com/jambo6?s=100" width="100px;" alt="James Morrill"/><br /><sub><b>James Morrill</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jambo6" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/janpipek"><img src="https://avatars.githubusercontent.com/janpipek?s=100" width="100px;" alt="Jan Pipek"/><br /><sub><b>Jan Pipek</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=janpipek" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jasmineliaw"><img src="?s=100" width="100px;" alt="Jasmine Liaw"/><br /><sub><b>Jasmine Liaw</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jasmineliaw" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="http://www.timeseriesclassification.com"><img src="https://avatars1.githubusercontent.com/u/38794632?v=4?s=100" width="100px;" alt="Jason Lines"/><br /><sub><b>Jason Lines</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jasonlines" title="Code">💻</a> <a href="#business-jasonlines" title="Business development">💼</a> <a href="https://github.com/sktime/sktime/commits?author=jasonlines" title="Documentation">📖</a> <a href="#design-jasonlines" title="Design">🎨</a> <a href="#eventOrganizing-jasonlines" title="Event Organizing">📋</a> <a href="#fundingFinding-jasonlines" title="Funding Finding">🔍</a> <a href="#ideas-jasonlines" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-jasonlines" title="Project Management">📆</a> <a href="#question-jasonlines" title="Answering Questions">💬</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Ajasonlines" title="Reviewed Pull Requests">👀</a> <a href="#talk-jasonlines" title="Talks">📢</a> <a href="#example-jasonlines" title="Examples">💡</a></td>
@@ -148,9 +149,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/pirnerjonas"><img src="https://avatars.githubusercontent.com/u/48887249?v=4?s=100" width="100px;" alt="Jonas Pirner"/><br /><sub><b>Jonas Pirner</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=pirnerjonas" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/JonathanBechtel"><img src="https://avatars.githubusercontent.com/u/481696?v=4?s=100" width="100px;" alt="JonathanBechtel"/><br /><sub><b>JonathanBechtel</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=JonathanBechtel" title="Code">💻</a> <a href="#ideas-JonathanBechtel" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/sktime/sktime/commits?author=JonathanBechtel" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jorenham"><img src="?s=100" width="100px;" alt="Joren Hammudoglu"/><br /><sub><b>Joren Hammudoglu</b></sub></a><br /><a href="#infra-jorenham" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://juanitorduz.github.io/"><img src="https://avatars1.githubusercontent.com/u/22996444?v=4?s=100" width="100px;" alt="Juan Orduz"/><br /><sub><b>Juan Orduz</b></sub></a><br /><a href="#tutorial-juanitorduz" title="Tutorials">✅</a> <a href="https://github.com/sktime/sktime/commits?author=juanitorduz" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://juanitorduz.github.io/"><img src="https://avatars1.githubusercontent.com/u/22996444?v=4?s=100" width="100px;" alt="Juan Orduz"/><br /><sub><b>Juan Orduz</b></sub></a><br /><a href="#tutorial-juanitorduz" title="Tutorials">✅</a> <a href="https://github.com/sktime/sktime/commits?author=juanitorduz" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/julia-kraus"><img src="https://avatars.githubusercontent.com/julia-kraus?s=100" width="100px;" alt="Julia Kraus"/><br /><sub><b>Julia Kraus</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=julia-kraus" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=julia-kraus" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=julia-kraus" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jelc53"><img src="?s=100" width="100px;" alt="Julian Cooper"/><br /><sub><b>Julian Cooper</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jelc53" title="Code">💻</a> <a href="#ideas-jelc53" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/julnow"><img src="https://avatars.githubusercontent.com/u/21206185?v=4?s=100" width="100px;" alt="Julian Nowak"/><br /><sub><b>Julian Nowak</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Ajulnow" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=julnow" title="Code">💻</a></td>
@@ -159,9 +160,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/kcc-lion"><img src="?s=100" width="100px;" alt="Kai Lion"/><br /><sub><b>Kai Lion</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=kcc-lion" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=kcc-lion" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=kcc-lion" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/kanand77"><img src="https://avatars.githubusercontent.com/kanand77?s=100" width="100px;" alt="Kavin Anand"/><br /><sub><b>Kavin Anand</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=kanand77" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://kejsitake.com/"><img src="https://avatars.githubusercontent.com/u/23707808?v=4?s=100" width="100px;" alt="Kejsi Take"/><br /><sub><b>Kejsi Take</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=kejsitake" title="Code">💻</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/kevinlam2"><img src="https://avatars.githubusercontent.com/u/114420932?s=400&v=4?s=100" width="100px;" alt="Kevin Lam"/><br /><sub><b>Kevin Lam</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=klam-data" title="Code">💻</a> <a href="#example-klam-data" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=klam-data" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/kevinlam2"><img src="https://avatars.githubusercontent.com/u/114420932?s=400&v=4?s=100" width="100px;" alt="Kevin Lam"/><br /><sub><b>Kevin Lam</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=klam-data" title="Code">💻</a> <a href="#example-klam-data" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=klam-data" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://whitakerlab.github.io/"><img src="https://avatars1.githubusercontent.com/u/3626306?v=4?s=100" width="100px;" alt="Kirstie Whitaker"/><br /><sub><b>Kirstie Whitaker</b></sub></a><br /><a href="#ideas-KirstieJane" title="Ideas, Planning, & Feedback">🤔</a> <a href="#fundingFinding-KirstieJane" title="Funding Finding">🔍</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/kishmanani"><img src="https://avatars.githubusercontent.com/u/30973056?v=4?s=100" width="100px;" alt="Kishan Manani"/><br /><sub><b>Kishan Manani</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=KishManani" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=KishManani" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=KishManani" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/issues?q=author%3AKishManani" title="Bug reports">🐛</a> <a href="#ideas-KishManani" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/krumeto"><img src="https://avatars3.githubusercontent.com/u/11272436?v=4?s=100" width="100px;" alt="Krum Arnaudov"/><br /><sub><b>Krum Arnaudov</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Akrumeto" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=krumeto" title="Code">💻</a></td>
@@ -170,9 +171,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/lielleravid"><img src="https://avatars.githubusercontent.com/u/37774194?v=4?s=100" width="100px;" alt="Lielle Ravid"/><br /><sub><b>Lielle Ravid</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=lielleravid" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=lielleravid" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/chillerobscuro"><img src="https://avatars.githubusercontent.com/u/5232872?v=4?s=100" width="100px;" alt="Logan Duffy"/><br /><sub><b>Logan Duffy</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=chillerobscuro" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=chillerobscuro" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=chillerobscuro" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Achillerobscuro" title="Bug reports">🐛</a> <a href="#ideas-chillerobscuro" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="http://lpantano.github.io/"><img src="https://avatars2.githubusercontent.com/u/1621788?v=4?s=100" width="100px;" alt="Lorena Pantano"/><br /><sub><b>Lorena Pantano</b></sub></a><br /><a href="#ideas-lpantano" title="Ideas, Planning, & Feedback">🤔</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/ltoniazzi"><img src="https://avatars.githubusercontent.com/u/61414566?s=100" width="100px;" alt="Lorenzo Toniazzi"/><br /><sub><b>Lorenzo Toniazzi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ltoniazzi" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/ltoniazzi"><img src="https://avatars.githubusercontent.com/u/61414566?s=100" width="100px;" alt="Lorenzo Toniazzi"/><br /><sub><b>Lorenzo Toniazzi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ltoniazzi" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Lovkush-A"><img src="https://avatars.githubusercontent.com/u/25344832?v=4?s=100" width="100px;" alt="Lovkush"/><br /><sub><b>Lovkush</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Lovkush-A" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=Lovkush-A" title="Tests">⚠️</a> <a href="#ideas-Lovkush-A" title="Ideas, Planning, & Feedback">🤔</a> <a href="#mentoring-Lovkush-A" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-Lovkush-A" title="Project Management">📆</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/luca-miniati"><img src="https://avatars.githubusercontent.com/u/87467600?v=4?s=100" width="100px;" alt="Luca Miniati"/><br /><sub><b>Luca Miniati</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=luca-miniati" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=luca-miniati" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/lbventura"><img src="https://avatars.githubusercontent.com/u/68004282?s=96&v=4?s=100" width="100px;" alt="Luis Ventura"/><br /><sub><b>Luis Ventura</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=lbventura" title="Code">💻</a></td>
@@ -181,9 +182,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/marrov"><img src="https://avatars.githubusercontent.com/u/54272586?v=4?s=100" width="100px;" alt="Marc Rovira"/><br /><sub><b>Marc Rovira</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=marrov" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="http://marcelotryle.com"><img src="https://avatars3.githubusercontent.com/u/7353520?v=4?s=100" width="100px;" alt="Marcelo Trylesinski"/><br /><sub><b>Marcelo Trylesinski</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Kludex" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/MarcoGorelli"><img src="https://avatars2.githubusercontent.com/u/33491632?v=4?s=100" width="100px;" alt="Marco Gorelli"/><br /><sub><b>Marco Gorelli</b></sub></a><br /><a href="#infra-MarcoGorelli" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/margaret-gorlin/"><img src="?s=100" width="100px;" alt="Margaret Gorlin"/><br /><sub><b>Margaret Gorlin</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mgorlin" title="Code">💻</a> <a href="#example-mgorlin" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=mgorlin" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/margaret-gorlin/"><img src="?s=100" width="100px;" alt="Margaret Gorlin"/><br /><sub><b>Margaret Gorlin</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mgorlin" title="Code">💻</a> <a href="#example-mgorlin" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=mgorlin" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/mariamjabara"><img src="?s=100" width="100px;" alt="Mariam Jabara"/><br /><sub><b>Mariam Jabara</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mariamjabara" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://twitter.com/marielli"><img src="https://avatars2.githubusercontent.com/u/13499809?v=4?s=100" width="100px;" alt="Marielle"/><br /><sub><b>Marielle</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=marielledado" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=marielledado" title="Code">💻</a> <a href="#ideas-marielledado" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/mloning"><img src="https://avatars3.githubusercontent.com/u/21020482?v=4?s=100" width="100px;" alt="Markus Löning"/><br /><sub><b>Markus Löning</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mloning" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=mloning" title="Tests">⚠️</a> <a href="#maintenance-mloning" title="Maintenance">🚧</a> <a href="#platform-mloning" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Amloning" title="Reviewed Pull Requests">👀</a> <a href="#infra-mloning" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-mloning" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Amloning" title="Bug reports">🐛</a> <a href="#tutorial-mloning" title="Tutorials">✅</a> <a href="#business-mloning" title="Business development">💼</a> <a href="https://github.com/sktime/sktime/commits?author=mloning" title="Documentation">📖</a> <a href="#design-mloning" title="Design">🎨</a> <a href="#eventOrganizing-mloning" title="Event Organizing">📋</a> <a href="#fundingFinding-mloning" title="Funding Finding">🔍</a> <a href="#ideas-mloning" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-mloning" title="Project Management">📆</a> <a href="#question-mloning" title="Answering Questions">💬</a> <a href="#talk-mloning" title="Talks">📢</a> <a href="#mentoring-mloning" title="Mentoring">🧑‍🏫</a> <a href="#video-mloning" title="Videos">📹</a></td>
@@ -192,20 +193,21 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/MCRE-BE"><img src="https://avatars.githubusercontent.com/u/99316631?s=100" width="100px;" alt="Mathias Creemers"/><br /><sub><b>Mathias Creemers</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AMCRE-BE" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=MCRE-BE" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="http://www.timeseriesclassification.com"><img src="https://avatars0.githubusercontent.com/u/25731235?v=4?s=100" width="100px;" alt="Matthew Middlehurst"/><br /><sub><b>Matthew Middlehurst</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=MatthewMiddlehurst" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=MatthewMiddlehurst" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=MatthewMiddlehurst" title="Tests">⚠️</a> <a href="#tutorial-MatthewMiddlehurst" title="Tutorials">✅</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3AMatthewMiddlehurst" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/sktime/sktime/issues?q=author%3AMatthewMiddlehurst" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/tvdboom"><img src="https://avatars.githubusercontent.com/u/32366550?v=4?s=100" width="100px;" alt="Mavs"/><br /><sub><b>Mavs</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=tvdboom" title="Code">💻</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/maxfrohlich/"><img src="https://avatars.githubusercontent.com/u/16393653?v=4?s=100" width="100px;" alt="Max Frohlich"/><br /><sub><b>Max Frohlich</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ninedigits" title="Code">💻</a> <a href="#ideas-ninedigits" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-ninedigits" title="Maintenance">🚧</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/maxfrohlich/"><img src="https://avatars.githubusercontent.com/u/16393653?v=4?s=100" width="100px;" alt="Max Frohlich"/><br /><sub><b>Max Frohlich</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ninedigits" title="Code">💻</a> <a href="#ideas-ninedigits" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-ninedigits" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/solen0id"><img src="https://avatars.githubusercontent.com/u/20767606?v=4?s=100" width="100px;" alt="Max Patzelt"/><br /><sub><b>Max Patzelt</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=solen0id" title="Code">💻</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/meraldoantonio"><img src="https://avatars.githubusercontent.com/u/37468543?v=4?s=100" width="100px;" alt="Meraldo Antonio"/><br /><sub><b>Meraldo Antonio</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Hephaest"><img src="https://avatars2.githubusercontent.com/u/37981444?v=4?s=100" width="100px;" alt="Miao Cai"/><br /><sub><b>Miao Cai</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AHephaest" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=Hephaest" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="michaelfeil.eu"><img src="https://avatars.githubusercontent.com/u/63565275?v=4?s=100" width="100px;" alt="Michael Feil"/><br /><sub><b>Michael Feil</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=michaelfeil" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=michaelfeil" title="Tests">⚠️</a> <a href="#ideas-michaelfeil" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/mgazian000"><img src="https://avatars.githubusercontent.com/mgazian000?s=100" width="100px;" alt="Michael Gaziani"/><br /><sub><b>Michael Gaziani</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mgazian000" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/MichalChromcak"><img src="https://avatars1.githubusercontent.com/u/12393430?v=4?s=100" width="100px;" alt="Michal Chromcak"/><br /><sub><b>Michal Chromcak</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=MichalChromcak" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=MichalChromcak" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=MichalChromcak" title="Tests">⚠️</a> <a href="#tutorial-MichalChromcak" title="Tutorials">✅</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/miraep8"><img src="https://avatars.githubusercontent.com/u/10511777?s=400&u=10a774fd4be767fa3b23a82a98bbfe102c17f0f3&v=4?s=100" width="100px;" alt="Mirae Parker"/><br /><sub><b>Mirae Parker</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=miraep8" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=miraep8" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/MBristle"><img src="https://avatars.githubusercontent.com/MBristle?s=100" width="100px;" alt="Mirko Bristle"/><br /><sub><b>Mirko Bristle</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AMBristle" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=MBristle" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=MBristle" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://mo-saif.github.io/"><img src="https://avatars0.githubusercontent.com/u/27867617?v=4?s=100" width="100px;" alt="Mohammed Saif Kazamel"/><br /><sub><b>Mohammed Saif Kazamel</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AMo-Saif" title="Bug reports">🐛</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://moradabaz.github.io/"><img src="https://avatars.githubusercontent.com/u/29915156?v=4?s=100" width="100px;" alt="Morad :)"/><br /><sub><b>Morad :)</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=moradabaz" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=moradabaz" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=moradabaz" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://mo-saif.github.io/"><img src="https://avatars0.githubusercontent.com/u/27867617?v=4?s=100" width="100px;" alt="Mohammed Saif Kazamel"/><br /><sub><b>Mohammed Saif Kazamel</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AMo-Saif" title="Bug reports">🐛</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://moradabaz.github.io/"><img src="https://avatars.githubusercontent.com/u/29915156?v=4?s=100" width="100px;" alt="Morad :)"/><br /><sub><b>Morad :)</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=moradabaz" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=moradabaz" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=moradabaz" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Multivin12"><img src="https://avatars3.githubusercontent.com/u/36476633?v=4?s=100" width="100px;" alt="Multivin12"/><br /><sub><b>Multivin12</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Multivin12" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=Multivin12" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/marcio55afr"><img src="https://avatars.githubusercontent.com/u/42646282?v=4?s=100" width="100px;" alt="Márcio A. Freitas Jr"/><br /><sub><b>Márcio A. Freitas Jr</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=marcio55afr" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/niekvanderlaan"><img src="https://avatars.githubusercontent.com/u/9962825?v=4?s=100" width="100px;" alt="Niek van der Laan"/><br /><sub><b>Niek van der Laan</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=niekvanderlaan" title="Code">💻</a></td>
@@ -213,10 +215,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/nshahpazov/"><img src="https://avatars.githubusercontent.com/nshahpazov?s=100" width="100px;" alt="Nikola Shahpazov"/><br /><sub><b>Nikola Shahpazov</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=nshahpazov" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/nilesh05apr"><img src="https://avatars.githubusercontent.com/u/65773314?v=4?s=100" width="100px;" alt="Nilesh Kumar"/><br /><sub><b>Nilesh Kumar</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=nilesh05apr" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ninfueng"><img src="https://avatars2.githubusercontent.com/u/28499769?v=4?s=100" width="100px;" alt="Ninnart Fuengfusin"/><br /><sub><b>Ninnart Fuengfusin</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ninfueng" title="Code">💻</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/NoaBenAmi"><img src="https://avatars.githubusercontent.com/u/37590002?v=4?s=100" width="100px;" alt="Noa Ben Ami"/><br /><sub><b>Noa Ben Ami</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=NoaBenAmi" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=NoaBenAmi" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=NoaBenAmi" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/shchur"><img src="https://avatars.githubusercontent.com/u/6944857?v=4?s=100" width="100px;" alt="Oleksandr Shchur"/><br /><sub><b>Oleksandr Shchur</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Ashchur" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=shchur" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/NoaBenAmi"><img src="https://avatars.githubusercontent.com/u/37590002?v=4?s=100" width="100px;" alt="Noa Ben Ami"/><br /><sub><b>Noa Ben Ami</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=NoaBenAmi" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=NoaBenAmi" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=NoaBenAmi" title="Documentation">📖</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/shchur"><img src="https://avatars.githubusercontent.com/u/6944857?v=4?s=100" width="100px;" alt="Oleksandr Shchur"/><br /><sub><b>Oleksandr Shchur</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Ashchur" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=shchur" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/kachayev"><img src="https://avatars.githubusercontent.com/u/485647?v=4?s=100" width="100px;" alt="Oleksii Kachaiev"/><br /><sub><b>Oleksii Kachaiev</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=kachayev" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=kachayev" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/olivermatthews"><img src="https://avatars.githubusercontent.com/u/31141490?v=4?s=100" width="100px;" alt="Oliver Matthews"/><br /><sub><b>Oliver Matthews</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=OliverMatthews" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/prockenschaub"><img src="https://avatars0.githubusercontent.com/u/15381732?v=4?s=100" width="100px;" alt="Patrick Rockenschaub"/><br /><sub><b>Patrick Rockenschaub</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=prockenschaub" title="Code">💻</a> <a href="#design-prockenschaub" title="Design">🎨</a> <a href="#ideas-prockenschaub" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/sktime/sktime/commits?author=prockenschaub" title="Tests">⚠️</a></td>
@@ -224,10 +226,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://ber.gp"><img src="https://avatars1.githubusercontent.com/u/9824244?v=4?s=100" width="100px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Pangoraw" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/paulyim97/"><img src="https://avatars.githubusercontent.com/pyyim?s=100" width="100px;" alt="Paul Yim"/><br /><sub><b>Paul Yim</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=pyyim" title="Code">💻</a> <a href="#example-pyyim" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=pyyim" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.imes.uni-hannover.de/de/institut/team/m-sc-karl-philipp-kortmann/"><img src="https://avatars.githubusercontent.com/u/20466981?v=4?s=100" width="100px;" alt="Philipp Kortmann"/><br /><sub><b>Philipp Kortmann</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=MrPr3ntice" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=MrPr3ntice" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/Piyush1729"><img src="https://avatars2.githubusercontent.com/u/64950012?v=4?s=100" width="100px;" alt="Piyush Gade"/><br /><sub><b>Piyush Gade</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Piyush1729" title="Code">💻</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3APiyush1729" title="Reviewed Pull Requests">👀</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/rahulporuri"><img src="https://avatars.githubusercontent.com/u/1926457?v=4?s=100" width="100px;" alt="Poruri Sai Rahul"/><br /><sub><b>Poruri Sai Rahul</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=rahulporuri" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/Piyush1729"><img src="https://avatars2.githubusercontent.com/u/64950012?v=4?s=100" width="100px;" alt="Piyush Gade"/><br /><sub><b>Piyush Gade</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Piyush1729" title="Code">💻</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3APiyush1729" title="Reviewed Pull Requests">👀</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/rahulporuri"><img src="https://avatars.githubusercontent.com/u/1926457?v=4?s=100" width="100px;" alt="Poruri Sai Rahul"/><br /><sub><b>Poruri Sai Rahul</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=rahulporuri" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/pranav-prajapati-a5b413226/"><img src="https://avatars.githubusercontent.com/u/94780581?v=4?s=100" width="100px;" alt="Pranav Prajapati"/><br /><sub><b>Pranav Prajapati</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=pranavvp16" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=pranavvp16" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/pul95"><img src="https://avatars.githubusercontent.com/pul95?s=100" width="100px;" alt="Pulkit Verma"/><br /><sub><b>Pulkit Verma</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=pul95" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Quaterion"><img src="https://avatars2.githubusercontent.com/u/23200273?v=4?s=100" width="100px;" alt="Quaterion"/><br /><sub><b>Quaterion</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AQuaterion" title="Bug reports">🐛</a></td>
@@ -235,10 +237,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Ram0nB"><img src="https://avatars.githubusercontent.com/u/45173421?s=100" width="100px;" alt="Ramon Bussing"/><br /><sub><b>Ramon Bussing</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Ram0nB" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=Ram0nB" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/RavenRudi"><img src="https://avatars.githubusercontent.com/u/46402968?v=4?s=100" width="100px;" alt="RavenRudi"/><br /><sub><b>RavenRudi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=RavenRudi" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/wolph"><img src="?s=100" width="100px;" alt="Rick van Hattem"/><br /><sub><b>Rick van Hattem</b></sub></a><br /><a href="#infra-wolph" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/Ris-Bali"><img src="https://avatars.githubusercontent.com/u/81592570?v=4?s=100" width="100px;" alt="Rishabh Bali"/><br /><sub><b>Rishabh Bali</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Ris-Bali" title="Code">💻</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/RishiKumarRay"><img src="https://avatars.githubusercontent.com/u/87641376?v=4?s=100" width="100px;" alt="Rishi Kumar Ray"/><br /><sub><b>Rishi Kumar Ray</b></sub></a><br /><a href="#infra-RishiKumarRay" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/Ris-Bali"><img src="https://avatars.githubusercontent.com/u/81592570?v=4?s=100" width="100px;" alt="Rishabh Bali"/><br /><sub><b>Rishabh Bali</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Ris-Bali" title="Code">💻</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/RishiKumarRay"><img src="https://avatars.githubusercontent.com/u/87641376?v=4?s=100" width="100px;" alt="Rishi Kumar Ray"/><br /><sub><b>Rishi Kumar Ray</b></sub></a><br /><a href="#infra-RishiKumarRay" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="11.11%"><img src="https://avatars.githubusercontent.com/u/55790848?v=4?s=100" width="100px;" alt="Riya Elizabeth John"/><br /><sub><b>Riya Elizabeth John</b></sub><br /><a href="https://github.com/sktime/sktime/commits?author=Riyabelle25" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Riyabelle25"><img src="https://avatars.githubusercontent.com/u/55790848?v=4?s=100" width="100px;" alt="Riya Elizabeth John"/><br /><sub><b>Riya Elizabeth John</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Riyabelle25" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=Riyabelle25" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=Riyabelle25" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/romanlutz/"><img src="https://avatars.githubusercontent.com/u/10245648?v=4?s=100" width="100px;" alt="Roman Lutz"/><br /><sub><b>Roman Lutz</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=romanlutz" title="Documentation">📖</a></td>
@@ -246,87 +248,88 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/rnkuhns"><img src="https://avatars0.githubusercontent.com/u/26907244?v=4?s=100" width="100px;" alt="Ryan Kuhns"/><br /><sub><b>Ryan Kuhns</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=RNKuhns" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=RNKuhns" title="Documentation">📖</a> <a href="#tutorial-RNKuhns" title="Tutorials">✅</a> <a href="#example-RNKuhns" title="Examples">💡</a> <a href="#ideas-RNKuhns" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3ARNKuhns" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/sktime/sktime/commits?author=RNKuhns" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/achieveordie"><img src="https://avatars.githubusercontent.com/u/54197164?v=4?s=100" width="100px;" alt="Sagar Mishra"/><br /><sub><b>Sagar Mishra</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Aachieveordie" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=achieveordie" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=achieveordie" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://sajay.online"><img src="https://avatars2.githubusercontent.com/u/25329624?v=4?s=100" width="100px;" alt="Sajaysurya Ganesh"/><br /><sub><b>Sajaysurya Ganesh</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sajaysurya" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=sajaysurya" title="Documentation">📖</a> <a href="#design-sajaysurya" title="Design">🎨</a> <a href="#example-sajaysurya" title="Examples">💡</a> <a href="#ideas-sajaysurya" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/sktime/sktime/commits?author=sajaysurya" title="Tests">⚠️</a> <a href="#tutorial-sajaysurya" title="Tutorials">✅</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/SamiAlavi"><img src="https://avatars.githubusercontent.com/u/32700289?v=4?s=100" width="100px;" alt="Sami Alavi"/><br /><sub><b>Sami Alavi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SamiAlavi" title="Code">💻</a> <a href="#maintenance-SamiAlavi" title="Maintenance">🚧</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/sanjayk0508"><img src="https://avatars.githubusercontent.com/u/102804548?v=4?s=100" width="100px;" alt="Sanjay Kumar"/><br /><sub><b>Sanjay Kumar</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sanjayk0508" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/SamiAlavi"><img src="https://avatars.githubusercontent.com/u/32700289?v=4?s=100" width="100px;" alt="Sami Alavi"/><br /><sub><b>Sami Alavi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SamiAlavi" title="Code">💻</a> <a href="#maintenance-SamiAlavi" title="Maintenance">🚧</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/sanjayk0508"><img src="https://avatars.githubusercontent.com/u/102804548?v=4?s=100" width="100px;" alt="Sanjay Kumar"/><br /><sub><b>Sanjay Kumar</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sanjayk0508" title="Tests">⚠️</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/deysanjeeb"><img src="https://avatars.githubusercontent.com/u/39940629?v=4?s=100" width="100px;" alt="Sanjeeb Dey"/><br /><sub><b>Sanjeeb Dey</b></sub></a><br /><a href="#maintenance-deysanjeeb" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/sssilvar"><img src="https://avatars.githubusercontent.com/u/16252054?v=4?s=100" width="100px;" alt="Santiago Smith Silva"/><br /><sub><b>Santiago Smith Silva</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sssilvar" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Saransh-cpp"><img src="https://avatars.githubusercontent.com/u/74055102?v=4?s=100" width="100px;" alt="Saransh Chopra"/><br /><sub><b>Saransh Chopra</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Saransh-cpp" title="Documentation">📖</a> <a href="#infra-Saransh-cpp" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/satya-pattnaik-77a430144/"><img src="https://avatars.githubusercontent.com/u/22102468?v=4?s=100" width="100px;" alt="Satya Prakash Pattnaik"/><br /><sub><b>Satya Prakash Pattnaik</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=satya-pattnaik" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/dasgupsa"><img src="https://avatars2.githubusercontent.com/u/10398956?v=4?s=100" width="100px;" alt="Saurabh Dasgupta"/><br /><sub><b>Saurabh Dasgupta</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=dasgupsa" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/SebasKoel"><img src="https://avatars3.githubusercontent.com/u/66252156?v=4?s=100" width="100px;" alt="Sebastiaan Koel"/><br /><sub><b>Sebastiaan Koel</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SebasKoel" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=SebasKoel" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/shagn"><img src="https://avatars.githubusercontent.com/u/16029092?v=4?s=100" width="100px;" alt="Sebastian Hagn"/><br /><sub><b>Sebastian Hagn</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=shagn" title="Documentation">📖</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ShivamPathak99"><img src="https://avatars.githubusercontent.com/u/98941325?s=400&v=4?s=100" width="100px;" alt="Shivam Pathak"/><br /><sub><b>Shivam Pathak</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ShivamPathak99" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/AurumnPegasus"><img src="https://avatars.githubusercontent.com/u/54315149?v=4?s=100" width="100px;" alt="Shivansh Subramanian"/><br /><sub><b>Shivansh Subramanian</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=AurumnPegasus" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=AurumnPegasus" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/sbuse"><img src="https://avatars.githubusercontent.com/u/24408707?v=4?s=100" width="100px;" alt="Simon B."/><br /><sub><b>Simon B.</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sbuse" title="Code">💻</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/solomon-botchway-a1383821b/"><img src="https://avatars.githubusercontent.com/u/62394255?v=4?s=100" width="100px;" alt="Solomon Botchway"/><br /><sub><b>Solomon Botchway</b></sub></a><br /><a href="#maintenance-snnbotchway" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/khrapovs"><img src="https://avatars.githubusercontent.com/u/3774663?v=4?s=100" width="100px;" alt="Stanislav Khrapov"/><br /><sub><b>Stanislav Khrapov</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=khrapovs" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/steenrotsman"><img src="https://avatars.githubusercontent.com/u/78110080?s=400&v=4?s=100" width="100px;" alt="Stijn J. Rotman"/><br /><sub><b>Stijn J. Rotman</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=steenrotsman" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=steenrotsman" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/SveaMeyer13"><img src="https://avatars.githubusercontent.com/u/46671894?v=4?s=100" width="100px;" alt="Svea Marie Meyer"/><br /><sub><b>Svea Marie Meyer</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SveaMeyer13" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=SveaMeyer13" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/TNTran92"><img src="https://avatars.githubusercontent.com/u/55965636?v=4?s=100" width="100px;" alt="TNTran92"/><br /><sub><b>TNTran92</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=TNTran92" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Taise228"><img src="https://avatars.githubusercontent.com/u/95762401?s=400&v=4?s=100" width="100px;" alt="Taisei Yamamoto"/><br /><sub><b>Taisei Yamamoto</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Taise228" title="Code">💻</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://thayeylolu.github.io/portfolio/"><img src="https://avatars.githubusercontent.com/u/13348874?v=4?s=100" width="100px;" alt="Taiwo Owoseni"/><br /><sub><b>Taiwo Owoseni</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=thayeylolu" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/lnthach"><img src="https://avatars0.githubusercontent.com/u/7788363?v=4?s=100" width="100px;" alt="Thach Le Nguyen"/><br /><sub><b>Thach Le Nguyen</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=lnthach" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=lnthach" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/mathco-wf"><img src="https://avatars.githubusercontent.com/mathco-wf?s=100" width="100px;" alt="TheMathcompay Widget Factory Team"/><br /><sub><b>TheMathcompay Widget Factory Team</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mathco-wf" title="Documentation">📖</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/tombh"><img src="https://avatars.githubusercontent.com/u/160835?s=80&v=4?s=100" width="100px;" alt="Thomas Buckley-Houston"/><br /><sub><b>Thomas Buckley-Houston</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Atombh" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/xxl4tomxu98"><img src="https://avatars.githubusercontent.com/u/62292177?s=40&v=4?s=100" width="100px;" alt="Tom Xu"/><br /><sub><b>Tom Xu</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=xxl4tomxu98" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=xxl4tomxu98" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/tpvasconcelos"><img src="https://avatars.githubusercontent.com/u/17701527?v=4?s=100" width="100px;" alt="Tomas P. de Vasconcelos"/><br /><sub><b>Tomas P. de Vasconcelos</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Atpvasconcelos" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=tpvasconcelos" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/tch"><img src="https://avatars3.githubusercontent.com/u/184076?v=4?s=100" width="100px;" alt="Tomasz Chodakowski"/><br /><sub><b>Tomasz Chodakowski</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=tch" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=tch" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Atch" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="http://www.timeseriesclassification.com"><img src="https://avatars1.githubusercontent.com/u/9594042?v=4?s=100" width="100px;" alt="Tony Bagnall"/><br /><sub><b>Tony Bagnall</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=TonyBagnall" title="Code">💻</a> <a href="#business-TonyBagnall" title="Business development">💼</a> <a href="https://github.com/sktime/sktime/commits?author=TonyBagnall" title="Documentation">📖</a> <a href="#design-TonyBagnall" title="Design">🎨</a> <a href="#eventOrganizing-TonyBagnall" title="Event Organizing">📋</a> <a href="#fundingFinding-TonyBagnall" title="Funding Finding">🔍</a> <a href="#ideas-TonyBagnall" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-TonyBagnall" title="Project Management">📆</a> <a href="#question-TonyBagnall" title="Answering Questions">💬</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3ATonyBagnall" title="Reviewed Pull Requests">👀</a> <a href="#talk-TonyBagnall" title="Talks">📢</a> <a href="#data-TonyBagnall" title="Data">🔣</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/utsavcoding"><img src="https://avatars3.githubusercontent.com/u/55446385?v=4?s=100" width="100px;" alt="Utsav Kumar Tiwari"/><br /><sub><b>Utsav Kumar Tiwari</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=utsavcoding" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=utsavcoding" title="Documentation">📖</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Vasudeva-bit"><img src="https://avatars.githubusercontent.com/u/70791259?v=4?s=100" width="100px;" alt="Vasudeva Kilaru"/><br /><sub><b>Vasudeva Kilaru</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Vasudeva-bit" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=Vasudeva-bit" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/victordremov"><img src="https://avatars.githubusercontent.com/u/32140716?s=100" width="100px;" alt="Viktor Dremov"/><br /><sub><b>Viktor Dremov</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=victordremov" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ViktorKaz"><img src="https://avatars0.githubusercontent.com/u/33499138?v=4?s=100" width="100px;" alt="ViktorKaz"/><br /><sub><b>ViktorKaz</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ViktorKaz" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=ViktorKaz" title="Documentation">📖</a> <a href="#design-ViktorKaz" title="Design">🎨</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/vnicholson1"><img src="?s=100" width="100px;" alt="Vincent Nicholson"/><br /><sub><b>Vincent Nicholson</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vnicholson1" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/VyomkeshVyas"><img src="?s=100" width="100px;" alt="Vyomkesh Vyas"/><br /><sub><b>Vyomkesh Vyas</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=VyomkeshVyas" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=VyomkeshVyas" title="Documentation">📖</a> <a href="#example-VyomkeshVyas" title="Examples">💡</a> <a href="https://github.com/sktime/sktime/commits?author=VyomkeshVyas" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/wayneadams"><img src="https://avatars.githubusercontent.com/u/15034841?s=400&u=d717e9945910bcc844c5e64cd56d570c6cc4e8e6&v=4?s=100" width="100px;" alt="Wayne Adams"/><br /><sub><b>Wayne Adams</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=wayneadams" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/templierw/"><img src="https://github.com/templierw.png?s=100" width="100px;" alt="William Templier"/><br /><sub><b>William Templier</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=templierw" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/magittan"><img src="https://avatars0.githubusercontent.com/u/14024202?v=4?s=100" width="100px;" alt="William Zheng"/><br /><sub><b>William Zheng</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=magittan" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=magittan" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/yairbeer"><img src="https://avatars.githubusercontent.com/yairbeer?s=100" width="100px;" alt="Yair Beer"/><br /><sub><b>Yair Beer</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=yairbeer" title="Code">💻</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/yann-hallouard/"><img src="https://avatars.githubusercontent.com/YHallouard?s=100" width="100px;" alt="Yann Hallouard"/><br /><sub><b>Yann Hallouard</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=YHallouard" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=YHallouard" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/MEMEO-PRO"><img src="https://avatars.githubusercontent.com/memeo-pro?s=100" width="100px;" alt="Yash Edake"/><br /><sub><b>Yash Edake</b></sub></a><br /><a href="#maintenance-memeo-pro" title="Maintenance">🚧</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Amemeo-pro" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/yashlamba"><img src="https://avatars.githubusercontent.com/u/44164398?v=4?s=100" width="100px;" alt="Yash Lamba"/><br /><sub><b>Yash Lamba</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=yashlamba" title="Code">💻</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/xuyxu"><img src="https://avatars2.githubusercontent.com/u/22359569?v=4?s=100" width="100px;" alt="Yi-Xuan Xu"/><br /><sub><b>Yi-Xuan Xu</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=xuyxu" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=xuyxu" title="Tests">⚠️</a> <a href="#maintenance-xuyxu" title="Maintenance">🚧</a> <a href="https://github.com/sktime/sktime/commits?author=xuyxu" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/sz85512678"><img src="https://avatars.githubusercontent.com/sz85512678?s=100" width="100px;" alt="Zhen Shao"/><br /><sub><b>Zhen Shao</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sz85512678" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ZiyaoWei"><img src="https://avatars.githubusercontent.com/u/940823?v=4?s=100" width="100px;" alt="Ziyao Wei"/><br /><sub><b>Ziyao Wei</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ZiyaoWei" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/aa25desh"><img src="https://avatars1.githubusercontent.com/u/29518290?v=4?s=100" width="100px;" alt="aa25desh"/><br /><sub><b>aa25desh</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=aa25desh" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Aaa25desh" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/abandus"><img src="https://avatars2.githubusercontent.com/u/46486474?v=4?s=100" width="100px;" alt="abandus"/><br /><sub><b>abandus</b></sub></a><br /><a href="#ideas-abandus" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/sktime/sktime/commits?author=abandus" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/adoherty21"><img src="https://avatars.githubusercontent.com/u/52799751?s=400&v=4?s=100" width="100px;" alt="adoherty21"/><br /><sub><b>adoherty21</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Aadoherty21" title="Bug reports">🐛</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/bethrice44"><img src="https://avatars.githubusercontent.com/u/11226988?v=4?s=100" width="100px;" alt="bethrice44"/><br /><sub><b>bethrice44</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Abethrice44" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=bethrice44" title="Code">💻</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Abethrice44" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/sktime/sktime/commits?author=bethrice44" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/big-o"><img src="https://avatars1.githubusercontent.com/u/1134151?v=4?s=100" width="100px;" alt="big-o"/><br /><sub><b>big-o</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=big-o" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=big-o" title="Tests">⚠️</a> <a href="#design-big-o" title="Design">🎨</a> <a href="#ideas-big-o" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Abig-o" title="Reviewed Pull Requests">👀</a> <a href="#tutorial-big-o" title="Tutorials">✅</a> <a href="#mentoring-big-o" title="Mentoring">🧑‍🏫</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/bobbys-dev"><img src="https://avatars.githubusercontent.com/bobbys-dev?s=100" width="100px;" alt="bobbys"/><br /><sub><b>bobbys</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=bobbys-dev" title="Code">💻</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/brettkoonce"><img src="https://avatars2.githubusercontent.com/u/11281814?v=4?s=100" width="100px;" alt="brett koonce"/><br /><sub><b>brett koonce</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=brettkoonce" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/btrtts"><img src="https://avatars3.githubusercontent.com/u/66252156?v=4?s=100" width="100px;" alt="btrtts"/><br /><sub><b>btrtts</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=btrtts" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/chizzi25"><img src="https://avatars3.githubusercontent.com/u/67911243?v=4?s=100" width="100px;" alt="chizzi25"/><br /><sub><b>chizzi25</b></sub></a><br /><a href="#blog-chizzi25" title="Blogposts">📝</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/chrisholder"><img src="https://avatars.githubusercontent.com/u/4674372?v=4?s=100" width="100px;" alt="chrisholder"/><br /><sub><b>chrisholder</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=chrisholder" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=chrisholder" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/commits?author=chrisholder" title="Documentation">📖</a> <a href="#design-chrisholder" title="Design">🎨</a> <a href="#example-chrisholder" title="Examples">💡</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/danbartl"><img src="https://avatars.githubusercontent.com/u/19947407?v=4?s=100" width="100px;" alt="danbartl"/><br /><sub><b>danbartl</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Adanbartl" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=danbartl" title="Code">💻</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Adanbartl" title="Reviewed Pull Requests">👀</a> <a href="#talk-danbartl" title="Talks">📢</a> <a href="https://github.com/sktime/sktime/commits?author=danbartl" title="Tests">⚠️</a> <a href="#tutorial-danbartl" title="Tutorials">✅</a> <a href="#video-danbartl" title="Videos">📹</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/hamzahiqb"><img src="https://avatars3.githubusercontent.com/u/10302415?v=4?s=100" width="100px;" alt="hamzahiqb"/><br /><sub><b>hamzahiqb</b></sub></a><br /><a href="#infra-hamzahiqb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/hiqbal2"><img src="https://avatars3.githubusercontent.com/u/10302415?v=4?s=100" width="100px;" alt="hiqbal2"/><br /><sub><b>hiqbal2</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=hiqbal2" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jesellier"><img src="https://avatars0.githubusercontent.com/u/51952076?v=4?s=100" width="100px;" alt="jesellier"/><br /><sub><b>jesellier</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jesellier" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jschemm"><img src="https://avatars.githubusercontent.com/u/81151346?v=4?s=100" width="100px;" alt="jschemm"/><br /><sub><b>jschemm</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jschemm" title="Code">💻</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/kkoziara"><img src="https://avatars1.githubusercontent.com/u/4346849?v=4?s=100" width="100px;" alt="kkoziara"/><br /><sub><b>kkoziara</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=kkoziara" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Akkoziara" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/matteogales"><img src="https://avatars0.githubusercontent.com/u/9269326?v=4?s=100" width="100px;" alt="matteogales"/><br /><sub><b>matteogales</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=matteogales" title="Code">💻</a> <a href="#design-matteogales" title="Design">🎨</a> <a href="#ideas-matteogales" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/oleskiewicz"><img src="https://avatars1.githubusercontent.com/u/5682158?v=4?s=100" width="100px;" alt="oleskiewicz"/><br /><sub><b>oleskiewicz</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=oleskiewicz" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=oleskiewicz" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=oleskiewicz" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/pabworks"><img src="https://avatars.githubusercontent.com/u/32725127?v=4?s=100" width="100px;" alt="pabworks"/><br /><sub><b>pabworks</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=pabworks" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=pabworks" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/xloem"><img src="?s=100" width="100px;" alt="patiently pending world peace"/><br /><sub><b>patiently pending world peace</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=xloem" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/raishubham1"><img src="https://avatars3.githubusercontent.com/u/29356417?v=4?s=100" width="100px;" alt="raishubham1"/><br /><sub><b>raishubham1</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=raishubham1" title="Documentation">📖</a></td>
+    </tr>
+    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/simone-pignotti"><img src="https://avatars1.githubusercontent.com/u/44410066?v=4?s=100" width="100px;" alt="simone-pignotti"/><br /><sub><b>simone-pignotti</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=simone-pignotti" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Asimone-pignotti" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/sophijka"><img src="https://avatars2.githubusercontent.com/u/47450591?v=4?s=100" width="100px;" alt="sophijka"/><br /><sub><b>sophijka</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sophijka" title="Documentation">📖</a> <a href="#maintenance-sophijka" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/sri1419"><img src="https://avatars2.githubusercontent.com/u/65078278?v=4?s=100" width="100px;" alt="sri1419"/><br /><sub><b>sri1419</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=sri1419" title="Code">💻</a></td>
-    </tr>
-    <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/tensorflow-as-tf"><img src="https://avatars.githubusercontent.com/u/51345718?v=4?s=100" width="100px;" alt="tensorflow-as-tf"/><br /><sub><b>tensorflow-as-tf</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=tensorflow-as-tf" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/vedazeren"><img src="https://avatars3.githubusercontent.com/u/63582874?v=4?s=100" width="100px;" alt="vedazeren"/><br /><sub><b>vedazeren</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vedazeren" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=vedazeren" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/vincent-nich12"><img src="https://avatars3.githubusercontent.com/u/36476633?v=4?s=100" width="100px;" alt="vincent-nich12"/><br /><sub><b>vincent-nich12</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vincent-nich12" title="Code">💻</a></td>
diff --git a/docs/source/api_reference/transformations.rst b/docs/source/api_reference/transformations.rst
index 0481a8739..1a2388973 100644
--- a/docs/source/api_reference/transformations.rst
+++ b/docs/source/api_reference/transformations.rst
@@ -148,6 +148,7 @@ Shapelets, wavelets, and convolution
 
     ShapeletTransform
     RandomShapeletTransform
+    ShapeletTransformPyts
 
 .. currentmodule:: sktime.transformations.panel.rocket
 
@@ -304,13 +305,6 @@ Detrending and Decomposition
     Deseasonalizer
     ConditionalDeseasonalizer
     STLTransformer
-
-.. currentmodule:: sktime.transformations.series.detrend.mstl
-
-.. autosummary::
-    :toctree: auto_generated/
-    :template: class.rst
-
     MSTL
 
 .. currentmodule:: sktime.transformations.series.vmd
@@ -638,6 +632,20 @@ These transformers subset `X` by time points (`pandas` index or index level) or
     ColumnSelect
     IndexSubset
 
+Adapters to other frameworks
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Generic framework adapters that expose other frameworks in the ``sktime`` interface.
+
+.. currentmodule:: sktime.transformations.series.temporian
+
+.. autosummary::
+    :toctree: auto_generated/
+    :template: class.rst
+
+    TemporianTransformer
+
+
 Panel transformers
 ------------------
 
diff --git a/docs/source/developer_guide.rst b/docs/source/developer_guide.rst
index 2b3cbaea7..90ef47026 100644
--- a/docs/source/developer_guide.rst
+++ b/docs/source/developer_guide.rst
@@ -14,7 +14,7 @@ Welcome to sktime's developer guide!
 
 New developers should:
 
-* sign up to the developer Discord (see link in README) and say hello in the ``#contributors`` channel
+* sign up to the developer Discord (see link in README) and say hello in the ``#intro`` channel
 * install a development version of ``sktime``, see :ref:`installation`
 * set up CI tests locally and ensure they know how to check them remotely, see :ref:`continuous_integration`
 * get familiar with the git workflow (:ref:`git_workflow`) and coding standards (:ref:`coding_standards`)
diff --git a/docs/source/get_involved/contributing.rst b/docs/source/get_involved/contributing.rst
index 705e81dfe..e7eb30c94 100644
--- a/docs/source/get_involved/contributing.rst
+++ b/docs/source/get_involved/contributing.rst
@@ -24,7 +24,7 @@ and people who are looking to learn and develop their skills.
 
 Recommended steps for first time contributors, or to get started with regular contributions:
 
-1. Say hello (in the lobby on `Discord`_)!
+1. Say hello (in the ``#intro`` channel on `Discord`_)!
 2. Get set up for development, see `instructions in the developer guide <https://www.sktime.net/en/stable/developer_guide.html>`_.
 3. Pick a good first issue to work on, see a collection `in this summary issue <https://github.com/sktime/sktime/issues/1147>`_ , or from `this list <https://github.com/sktime/sktime/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`_
    suggestion: pick something small with simple content to learn the "process"
diff --git a/pyproject.toml b/pyproject.toml
index f4a911618..7fdcce890 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -108,7 +108,8 @@ all_extras = [
   "statsmodels>=0.12.1",
   'stumpy>=1.5.1; python_version < "3.11"',
   'tbats>=1.1; python_version < "3.12"',
-  'tensorflow<2.16.0; python_version < "3.12"',
+  'temporian>=0.7.0; python_version < "3.12" and sys_platform != "win32"',
+  'tensorflow<2.17,>=2; python_version < "3.12"',
   'tsfresh>=0.17; python_version < "3.12"',
   'tslearn<0.7.0,!=0.6.0,>=0.5.2; python_version < "3.11"',
   "xarray",
@@ -145,7 +146,8 @@ all_extras_pandas2 = [
   "statsmodels>=0.12.1",
   'stumpy>=1.5.1; python_version < "3.11"',
   'tbats>=1.1; python_version < "3.12"',
-  'tensorflow<2.16.0; python_version < "3.12"',
+  'temporian>=0.7.0; python_version < "3.12" and sys_platform != "win32"',
+  'tensorflow<2.17,>=2; python_version < "3.12"',
   'tsfresh>=0.17; python_version < "3.12"',
   'tslearn<0.7.0,!=0.6.0,>=0.5.2; python_version < "3.11"',
   "xarray",
@@ -161,7 +163,7 @@ all_extras_pandas2 = [
 # users can install via "pip install sktime[forecasting,transformations]" etc
 #
 alignment = [
-  "dtw-python<1.4,>=1.3",
+  "dtw-python>=1.3,<1.5",
   'numba<0.60,>=0.53',
 ]
 annotation = [
@@ -172,7 +174,7 @@ annotation = [
 classification = [
   'esig<0.10,>=0.9.7; python_version < "3.11"',
   'numba<0.60,>=0.53',
-  'tensorflow<2.16.0,>=2; python_version < "3.12"',
+  'tensorflow<2.17,>=2; python_version < "3.12"',
   'tsfresh<0.21,>=0.17; python_version < "3.12"',
 ]
 clustering = [
@@ -190,7 +192,7 @@ forecasting = [
 ]
 networks = [
   "keras-self-attention<0.52,>=0.51",
-  'tensorflow<2.16.0,>=2; python_version < "3.12"',
+  'tensorflow<2.17,>=2; python_version < "3.12"',
 ]
 param_est = [
   "seasonal<0.4,>=0.3.1",
@@ -198,18 +200,19 @@ param_est = [
 ]
 regression = [
   'numba<0.60,>=0.53',
-  'tensorflow<2.16.0,>=2; python_version < "3.12"',
+  'tensorflow<2.17,>=2; python_version < "3.12"',
 ]
 transformations = [
   'esig<0.10,>=0.9.7; python_version < "3.11"',
   "filterpy<1.5,>=1.4.5",
-  "holidays>=0.29,<0.45",
+  "holidays>=0.29,<0.46",
   "mne>=1.5,<1.7",
   'numba<0.60,>=0.53',
   "pycatch22>=0.4,<0.4.4",
   "pykalman-bardo<0.10,>=0.9.7",
   "statsmodels<0.15,>=0.12.1",
   'stumpy<1.13,>=1.5.1; python_version < "3.12"',
+  'temporian>=0.7.0; python_version < "3.12" and sys_platform != "win32"',
   'tsfresh<0.21,>=0.17; python_version < "3.12"',
 ]
 
@@ -265,7 +268,7 @@ cython_extras = [
 dl = [
   'FrEIA; python_version < "3.12"',
   'neuralforecast<1.7.0,>=1.6.4; python_version < "3.11"',
-  'tensorflow<2.16.0,>=2; python_version < "3.12"',
+  'tensorflow<2.17,>=2; python_version < "3.12"',
   'torch; python_version < "3.12"',
 ]
 mlflow = [
diff --git a/sktime/annotation/base/_base.py b/sktime/annotation/base/_base.py
index 4acc304cc..4d14b50f6 100644
--- a/sktime/annotation/base/_base.py
+++ b/sktime/annotation/base/_base.py
@@ -36,11 +36,13 @@ class BaseSeriesAnnotator(BaseEstimator):
         Annotation output format:
         * If "sparse", a sub-series of labels for only the outliers in X is returned,
         * If "dense", a series of labels for all values in X is returned.
-    labels : str {"indicator", "score"}, optional (default="indicator")
+    labels : str {"indicator", "score", "int_label"}, optional (default="indicator")
         Annotation output labels:
         * If "indicator", returned values are boolean, indicating whether a value is an
         outlier,
         * If "score", returned values are floats, giving the outlier score.
+        * If "int_label", returned values are integers indicating which segment the
+        value belongs to.
 
     Notes
     -----
diff --git a/sktime/classification/deep_learning/base.py b/sktime/classification/deep_learning/base.py
index 12587d394..1c049d686 100644
--- a/sktime/classification/deep_learning/base.py
+++ b/sktime/classification/deep_learning/base.py
@@ -6,6 +6,7 @@ because we can generalise tags, _predict and _predict_proba
 __author__ = ["James-Large", "ABostrom", "TonyBagnall", "aurunmpegasus", "achieveordie"]
 __all__ = ["BaseDeepClassifier"]
 
+import os
 from abc import ABC, abstractmethod
 
 import numpy as np
@@ -40,13 +41,6 @@ class BaseDeepClassifier(BaseClassifier, ABC):
         "python_dependencies": "tensorflow",
     }
 
-    def __init__(self, batch_size=40, random_state=None):
-        super().__init__()
-
-        self.batch_size = batch_size
-        self.random_state = random_state
-        self.model_ = None
-
     @abstractmethod
     def build_model(self, input_shape, n_classes, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
@@ -211,7 +205,7 @@ class BaseDeepClassifier(BaseClassifier, ABC):
         if hasattr(self, "history"):
             self.__dict__["history"] = self.history
 
-    def save(self, path=None, serialization_format="pickle"):
+    def save(self, path=None, serialization_format="pickle", legacy_save=True):
         """Save serialized self to bytes-like object or to (.zip) file.
 
         Behaviour:
@@ -233,17 +227,25 @@ class BaseDeepClassifier(BaseClassifier, ABC):
                 path="/home/stored/estimator" then a zip file ``estimator.zip`` will be
                 stored in ``/home/stored/``.
 
-        serialization_format: str, default = "pickle"
+        serialization_format : str, default = "pickle"
             Module to use for serialization.
             The available options are present under
             ``sktime.base._base.SERIALIZATION_FORMATS``. Note that non-default formats
             might require installation of other soft dependencies.
 
+        legacy_save : bool, default = True
+            whether to use the legacy saving method for the model. If
+            tensorflow >= 2.16.0 is installed, this is ignored.
+            The default will switch to False in sktime 0.28.0, and the
+            legacy saving method will be removed in sktime 0.29.0.
+
         Returns
         -------
         if ``path`` is None - in-memory serialized self
         if ``path`` is file location - ZipFile with reference to the file
         """
+        # TODO - remove the legacy_save parameter in sktime 0.30.0
+        # TODO - change the default value of legacy_save to False in sktime 0.29.0
         import pickle
         from pathlib import Path
 
@@ -264,24 +266,47 @@ class BaseDeepClassifier(BaseClassifier, ABC):
             path = Path(path) if isinstance(path, str) else path
             path.mkdir()
 
+        if legacy_save:
+            from sktime.utils.warnings import warn
+
+            warn(
+                "WARNING: In the save method of classifiers and regressors,"
+                " saving logic has changed to be compatible with tensorflow 2.16. "
+                "The old saving logic is deprecated and will be removed in "
+                "sktime 0.30.0. "
+                "If tensorflow>=2.16.0 is installed, the new saving logic is always "
+                "used. If not, by default, the legacy saving logic is used until "
+                "sktime 0.28.last, and the new logic is used from sktime 0.29.0."
+                "For safe change in an environment with tensorflow<2.16.0, "
+                "set the legacy_save parameter explicitly to False to test the "
+                "new saving logic. If no issues are found, no changes to your code "
+                "are necessary. To keep using the legacy method, set the parameter "
+                "legacy_save to True. Note that the legacy_save parameter will be "
+                "removed entirely in sktime 0.30.0.",
+                FutureWarning,
+                obj=self,
+                stacklevel=2,
+            )
+
+        if _check_soft_dependencies("tensorflow>=2.16.0", severity="none"):
+            legacy_save = False
+
         if serialization_format == "cloudpickle":
             _check_soft_dependencies("cloudpickle", severity="error")
             import cloudpickle
 
-            return self._serialize_using_dump_func(
-                path=path,
-                dump=cloudpickle.dump,
-                dumps=cloudpickle.dumps,
-            )
-
+            serializer = cloudpickle
         elif serialization_format == "pickle":
-            return self._serialize_using_dump_func(
-                path=path,
-                dump=pickle.dump,
-                dumps=pickle.dumps,
-            )
+            serializer = pickle
 
-    def _serialize_using_dump_func(self, path, dump, dumps):
+        return self._serialize_using_dump_func(
+            path=path,
+            dump=serializer.dump,
+            dumps=serializer.dumps,
+            legacy_save=legacy_save,
+        )
+
+    def _serialize_using_dump_func(self, path, dump, dumps, legacy_save=False):
         """Serialize & return DL Estimator using ``dump`` and ``dumps`` functions."""
         import shutil
         from zipfile import ZipFile
@@ -293,11 +318,8 @@ class BaseDeepClassifier(BaseClassifier, ABC):
 
             in_memory_model = None
             if self.model_ is not None:
-                with h5py.File(
-                    "disk_less", "w", driver="core", backing_store=False
-                ) as h5file:
-                    self.model_.save(h5file)
-                    h5file.flush()
+                self.model_.save("disk_less.h5")
+                with h5py.File("disk_less.h5", "r") as h5file:
                     in_memory_model = h5file.id.get_file_image()
 
             in_memory_history = dumps(history)
@@ -311,7 +333,12 @@ class BaseDeepClassifier(BaseClassifier, ABC):
             )
 
         if self.model_ is not None:
-            self.model_.save(path / "keras/")
+            if not legacy_save:
+                keras_path = path / "keras" / "model.keras"
+                os.makedirs(keras_path.parent, exist_ok=True)
+                self.model_.save(keras_path)
+            else:
+                self.model_.save(path / "keras/")
 
         with open(path / "history", "wb") as history_writer:
             dump(history, history_writer)
@@ -342,9 +369,7 @@ class BaseDeepClassifier(BaseClassifier, ABC):
         """
         _check_soft_dependencies("h5py")
         import pickle
-        from tempfile import TemporaryFile
 
-        import h5py
         from tensorflow.keras.models import load_model
 
         if not isinstance(serial, tuple):
@@ -364,11 +389,9 @@ class BaseDeepClassifier(BaseClassifier, ABC):
         if in_memory_model is None:
             cls.model_ = None
         else:
-            with TemporaryFile() as store_:
+            with open("diskless.h5", "wb") as store_:
                 store_.write(in_memory_model)
-                h5file = h5py.File(store_, "r")
-                cls.model_ = load_model(h5file)
-                h5file.close()
+                cls.model_ = load_model("diskless.h5")
 
         cls.history = pickle.loads(in_memory_history)
         return pickle.loads(serial)
@@ -400,9 +423,12 @@ class BaseDeepClassifier(BaseClassifier, ABC):
                     continue
                 zip_file.extract(file, temp_unzip_loc)
 
-        keras_location = temp_unzip_loc / "keras"
+        keras_location_legacy = temp_unzip_loc / "keras"
+        keras_location = temp_unzip_loc / "keras" / "model.keras"
         if keras_location.exists():
             cls.model_ = keras.models.load_model(keras_location)
+        elif keras_location_legacy.exists():
+            cls.model_ = keras.models.load_model(keras_location_legacy)
         else:
             cls.model_ = None
 
diff --git a/sktime/classification/deep_learning/cnn.py b/sktime/classification/deep_learning/cnn.py
index cd693a922..2c4b4349c 100644
--- a/sktime/classification/deep_learning/cnn.py
+++ b/sktime/classification/deep_learning/cnn.py
@@ -91,7 +91,8 @@ class CNNClassifier(BaseDeepClassifier):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
+
+        self.batch_size = batch_size
         self.n_conv_layers = n_conv_layers
         self.avg_pool_size = avg_pool_size
         self.kernel_size = kernel_size
@@ -106,6 +107,9 @@ class CNNClassifier(BaseDeepClassifier):
         self.use_bias = use_bias
         self.optimizer = optimizer
         self.history = None
+
+        super().__init__()
+
         self._network = CNNNetwork(
             kernel_size=self.kernel_size,
             avg_pool_size=self.avg_pool_size,
diff --git a/sktime/classification/deep_learning/cntc.py b/sktime/classification/deep_learning/cntc.py
index 900e98613..18ce61e18 100644
--- a/sktime/classification/deep_learning/cntc.py
+++ b/sktime/classification/deep_learning/cntc.py
@@ -107,9 +107,10 @@ class CNTCClassifier(BaseDeepClassifier):
         self.loss = loss
         self.metrics = metrics
         self.random_state = random_state
-        self._network = CNTCNetwork()
 
-        super().__init__(batch_size=batch_size, random_state=random_state)
+        super().__init__()
+
+        self._network = CNTCNetwork()
 
     def build_model(self, input_shape, n_classes, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
diff --git a/sktime/classification/deep_learning/fcn.py b/sktime/classification/deep_learning/fcn.py
index fff7bfbb2..d27c8d6ec 100644
--- a/sktime/classification/deep_learning/fcn.py
+++ b/sktime/classification/deep_learning/fcn.py
@@ -82,7 +82,7 @@ class FCNClassifier(BaseDeepClassifier):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
+
         self.callbacks = callbacks
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -94,9 +94,10 @@ class FCNClassifier(BaseDeepClassifier):
         self.use_bias = use_bias
         self.optimizer = optimizer
         self.history = None
-        self._network = FCNNetwork(
-            random_state=self.random_state,
-        )
+
+        super().__init__()
+
+        self._network = FCNNetwork(random_state=self.random_state)
 
     def build_model(self, input_shape, n_classes, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
diff --git a/sktime/classification/deep_learning/inceptiontime.py b/sktime/classification/deep_learning/inceptiontime.py
index 5e4e8c900..03a94fcc0 100644
--- a/sktime/classification/deep_learning/inceptiontime.py
+++ b/sktime/classification/deep_learning/inceptiontime.py
@@ -68,9 +68,6 @@ class InceptionTimeClassifier(BaseDeepClassifier):
         metrics=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
-
-        self.verbose = verbose
 
         # predefined
         self.batch_size = batch_size
@@ -86,7 +83,8 @@ class InceptionTimeClassifier(BaseDeepClassifier):
         self.use_bottleneck = use_bottleneck
         self.use_residual = use_residual
         self.verbose = verbose
-        self._is_fitted = False
+
+        super().__init__()
 
         network_params = {
             "n_filters": n_filters,
diff --git a/sktime/classification/deep_learning/lstmfcn.py b/sktime/classification/deep_learning/lstmfcn.py
index c016408bd..3f6bcad88 100644
--- a/sktime/classification/deep_learning/lstmfcn.py
+++ b/sktime/classification/deep_learning/lstmfcn.py
@@ -76,13 +76,6 @@ class LSTMFCNClassifier(BaseDeepClassifier):
         random_state=None,
         verbose=0,
     ):
-        super().__init__()
-
-        self.classes_ = None
-        self.input_shape = None
-        self.model_ = None
-        self.history = None
-
         # predefined
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -96,6 +89,8 @@ class LSTMFCNClassifier(BaseDeepClassifier):
         self.random_state = random_state
         self.verbose = verbose
 
+        super().__init__()
+
         self._network = LSTMFCNNetwork(
             kernel_sizes=self.kernel_sizes,
             filter_sizes=self.filter_sizes,
@@ -104,7 +99,6 @@ class LSTMFCNClassifier(BaseDeepClassifier):
             dropout=self.dropout,
             attention=self.attention,
         )
-        self._is_fitted = False
 
     def build_model(self, input_shape, n_classes, **kwargs):
         """
diff --git a/sktime/classification/deep_learning/macnn.py b/sktime/classification/deep_learning/macnn.py
index ab638fb6a..270b7c864 100644
--- a/sktime/classification/deep_learning/macnn.py
+++ b/sktime/classification/deep_learning/macnn.py
@@ -107,7 +107,6 @@ class MACNNClassifier(BaseDeepClassifier):
         verbose=False,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -126,6 +125,9 @@ class MACNNClassifier(BaseDeepClassifier):
         self.callbacks = callbacks
         self.random_state = random_state
         self.verbose = verbose
+
+        super().__init__()
+
         self.history = None
         self._network = MACNNNetwork(
             padding=self.padding,
diff --git a/sktime/classification/deep_learning/mcdcnn.py b/sktime/classification/deep_learning/mcdcnn.py
index 79ff7892a..4e4d2998b 100644
--- a/sktime/classification/deep_learning/mcdcnn.py
+++ b/sktime/classification/deep_learning/mcdcnn.py
@@ -107,7 +107,6 @@ class MCDCNNClassifier(BaseDeepClassifier):
         random_state=0,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -125,6 +124,9 @@ class MCDCNNClassifier(BaseDeepClassifier):
         self.optimizer = optimizer
         self.verbose = verbose
         self.random_state = random_state
+
+        super().__init__()
+
         self.history = None
         self._network = MCDCNNNetwork(
             kernel_size=self.kernel_size,
diff --git a/sktime/classification/deep_learning/mlp.py b/sktime/classification/deep_learning/mlp.py
index 71f36a2bd..0d3659c2a 100644
--- a/sktime/classification/deep_learning/mlp.py
+++ b/sktime/classification/deep_learning/mlp.py
@@ -82,7 +82,7 @@ class MLPClassifier(BaseDeepClassifier):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
+
         self.callbacks = callbacks
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -93,6 +93,9 @@ class MLPClassifier(BaseDeepClassifier):
         self.activation = activation
         self.use_bias = use_bias
         self.optimizer = optimizer
+
+        super().__init__()
+
         self.history = None
         self._network = MLPNetwork(
             random_state=self.random_state,
diff --git a/sktime/classification/deep_learning/resnet.py b/sktime/classification/deep_learning/resnet.py
index f85fcf7f0..d15bd4b3a 100644
--- a/sktime/classification/deep_learning/resnet.py
+++ b/sktime/classification/deep_learning/resnet.py
@@ -55,8 +55,8 @@ class ResNetClassifier(BaseDeepClassifier):
     >>> from sktime.classification.deep_learning.resnet import ResNetClassifier
     >>> from sktime.datasets import load_unit_test
     >>> X_train, y_train = load_unit_test(split="train")
-    >>> clf = ResNetClassifier(n_epochs=20, bacth_size=4) # doctest: +SKIP
-    >>> clf.fit(X_train, Y_train) # doctest: +SKIP
+    >>> clf = ResNetClassifier(n_epochs=20) # doctest: +SKIP
+    >>> clf.fit(X_train, y_train) # doctest: +SKIP
     ResNetClassifier(...)
     """
 
@@ -83,7 +83,7 @@ class ResNetClassifier(BaseDeepClassifier):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
+
         self.n_epochs = n_epochs
         self.callbacks = callbacks
         self.verbose = verbose
@@ -94,6 +94,9 @@ class ResNetClassifier(BaseDeepClassifier):
         self.activation = activation
         self.use_bias = use_bias
         self.optimizer = optimizer
+
+        super().__init__()
+
         self.history = None
         self._network = ResNetNetwork(random_state=random_state)
 
diff --git a/sktime/classification/deep_learning/rnn.py b/sktime/classification/deep_learning/rnn.py
index ab651853f..3f89323a6 100644
--- a/sktime/classification/deep_learning/rnn.py
+++ b/sktime/classification/deep_learning/rnn.py
@@ -47,6 +47,15 @@ class SimpleRNNClassifier(BaseDeepClassifier):
     ----------
     ..[1] benchmark forecaster in M4 forecasting competition:
     https://github.com/Mcompetitions/M4-methods
+
+    Examples
+    --------
+    >>> from sktime.classification.deep_learning.rnn import SimpleRNNClassifier
+    >>> from sktime.datasets import load_unit_test
+    >>> X_train, y_train = load_unit_test(split="train")
+    >>> clf = SimpleRNNClassifier(n_epochs=20,batch_size=20) # doctest: +SKIP
+    >>> clf.fit(X_train, y_train) # doctest: +SKIP
+    ResNetClassifier(...)
     """
 
     _tags = {
@@ -73,9 +82,8 @@ class SimpleRNNClassifier(BaseDeepClassifier):
     ):
         _check_dl_dependencies(severity="error")
 
-        super().__init__()
-
         self.batch_size = batch_size
+        self.n_epochs = n_epochs
         self.verbose = verbose
         self.units = units
         self.callbacks = callbacks
@@ -86,9 +94,11 @@ class SimpleRNNClassifier(BaseDeepClassifier):
         self.activation = activation
         self.use_bias = use_bias
         self.optimizer = optimizer
+
+        super().__init__()
+
         self.history = None
         self._network = RNNNetwork(random_state=random_state, units=units)
-        self.n_epochs = n_epochs
 
     def build_model(self, input_shape, n_classes, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
@@ -121,7 +131,7 @@ class SimpleRNNClassifier(BaseDeepClassifier):
         )(output_layer)
 
         self.optimizer_ = (
-            keras.optimizers.RMSprop(lr=0.001)
+            keras.optimizers.RMSprop(learning_rate=0.001)
             if self.optimizer is None
             else self.optimizer
         )
diff --git a/sktime/classification/deep_learning/tapnet.py b/sktime/classification/deep_learning/tapnet.py
index ee7c53592..4ff4b4ee6 100644
--- a/sktime/classification/deep_learning/tapnet.py
+++ b/sktime/classification/deep_learning/tapnet.py
@@ -119,7 +119,6 @@ class TapNetClassifier(BaseDeepClassifier):
         verbose=False,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.batch_size = batch_size
         self.random_state = random_state
@@ -148,6 +147,8 @@ class TapNetClassifier(BaseDeepClassifier):
         self.use_rp = use_rp
         self.rp_params = rp_params
 
+        super().__init__()
+
         self._network = TapNetNetwork(
             dropout=self.dropout,
             filter_sizes=self.filter_sizes,
diff --git a/sktime/datatypes/_registry.py b/sktime/datatypes/_registry.py
index 7d762c1ba..194972a66 100644
--- a/sktime/datatypes/_registry.py
+++ b/sktime/datatypes/_registry.py
@@ -127,7 +127,7 @@ def mtype_to_scitype(mtype: str, return_unique=False, coerce_to_list=False):
         if None, returns None
     return_unique : bool, default=False
         if True, makes return unique
-    coerce_to_list : bool, default=Fakse
+    coerce_to_list : bool, default=False
         if True, coerces rerturn to list, even if one-element
 
     Raises
diff --git a/sktime/forecasting/base/_base.py b/sktime/forecasting/base/_base.py
index 9ee373acf..f8d930e50 100644
--- a/sktime/forecasting/base/_base.py
+++ b/sktime/forecasting/base/_base.py
@@ -2601,7 +2601,9 @@ def _format_moving_cutoff_predictions(y_preds, cutoffs):
 
     if not y_pred.index.is_monotonic_increasing:
         y_pred = y_pred.sort_index()
-    if hasattr(y_pred, "columns") and not y_pred.columns.is_monotonic_increasing:
-        y_pred = y_pred.sort_index(axis=1)
+
+    if hasattr(y_preds[0], "columns") and not isinstance(y_pred.columns, pd.MultiIndex):
+        col_ordered = y_preds[0].columns
+        y_pred = y_pred.loc[:, col_ordered]
 
     return y_pred
diff --git a/sktime/forecasting/base/_fh.py b/sktime/forecasting/base/_fh.py
index 7141302ea..e10b2761b 100644
--- a/sktime/forecasting/base/_fh.py
+++ b/sktime/forecasting/base/_fh.py
@@ -381,6 +381,9 @@ class ForecastingHorizon:
         if hasattr(self, "_freq") and hasattr(self._freq, "freqstr"):
             # _freq is a pandas offset, frequency string is obtained via freqstr
             return self._freq.freqstr
+        elif hasattr(self, "_freq") and isinstance(self._freq, str):
+            # _freq is a string, frequency string is obtained directly
+            return self._freq
         else:
             return None
 
@@ -415,8 +418,12 @@ class ForecastingHorizon:
                     f"Current: {freq_from_self}, from update: {freq_from_obj}."
                 )
         elif freq_from_obj is not None:  # only freq_from_obj is not None
+            if freq_from_obj == "ME":
+                freq_from_obj = "M"
             self._freq = freq_from_obj
         else:
+            if freq_from_obj == "ME":
+                freq_from_obj = "M"
             # leave self._freq as freq_from_self, or set to None if does not exist yet
             self._freq = freq_from_self
 
diff --git a/sktime/forecasting/compose/_fallback.py b/sktime/forecasting/compose/_fallback.py
index d2382066c..7b9f867c1 100644
--- a/sktime/forecasting/compose/_fallback.py
+++ b/sktime/forecasting/compose/_fallback.py
@@ -8,7 +8,7 @@ If the active forecaster fails during prediction, it proceeds to the next. This
 a robust forecasting mechanism by providing fallback options.
 """
 
-__author__ = ["ninedigits"]
+__author__ = ["ninedigits", "RikStarmans"]
 __all__ = ["FallbackForecaster"]
 
 from sktime.base import _HeterogenousMetaEstimator
@@ -107,7 +107,7 @@ class FallbackForecaster(_HeterogenousMetaEstimator, _DelegatedForecaster):
     """
 
     _tags = {
-        "authors": ["ninedigits"],
+        "authors": ["ninedigits", "RikStarmans"],
         "maintainers": ["ninedigits"],
         "handles-missing-data": True,
         "scitype:y": "both",
diff --git a/sktime/networks/rnn.py b/sktime/networks/rnn.py
index 836bef650..f63ff822d 100644
--- a/sktime/networks/rnn.py
+++ b/sktime/networks/rnn.py
@@ -74,3 +74,29 @@ class RNNNetwork(BaseDeepNetwork):
         )(input_layer)
 
         return input_layer, output_layer
+
+    @classmethod
+    def get_test_params(cls, parameter_set="default"):
+        """Return testing parameter settings for the estimator.
+
+        Parameters
+        ----------
+        parameter_set : str, default="default"
+            Name of the set of test parameters to return, for use in tests. If no
+            special parameters are defined for a value, will return ``"default"`` set.
+            Reserved values for classifiers:
+                "results_comparison" - used for identity testing in some classifiers
+                    should contain parameter settings comparable to "TSC bakeoff"
+
+        Returns
+        -------
+        params : dict or list of dict, default = {}
+            Parameters to create testing instances of the class
+            Each dict are parameters to construct an "interesting" test instance, i.e.,
+            ``MyClass(**params)`` or ``MyClass(**params[i])`` creates a valid test
+            instance.
+            ``create_test_instance`` uses the first (or only) dictionary in ``params``
+        """
+        params1 = {}
+        params2 = {"units": 5}
+        return [params1, params2]
diff --git a/sktime/regression/deep_learning/base.py b/sktime/regression/deep_learning/base.py
index 8dcd23a81..87b9680ae 100644
--- a/sktime/regression/deep_learning/base.py
+++ b/sktime/regression/deep_learning/base.py
@@ -7,6 +7,7 @@ because we can generalise tags and _predict
 __author__ = ["AurumnPegasus", "achieveordie"]
 __all__ = ["BaseDeepRegressor"]
 
+import os
 from abc import ABC, abstractmethod
 
 import numpy as np
@@ -38,12 +39,6 @@ class BaseDeepRegressor(BaseRegressor, ABC):
         "python_dependencies": "tensorflow",
     }
 
-    def __init__(self, batch_size=40):
-        super().__init__()
-
-        self.batch_size = batch_size
-        self.model_ = None
-
     @abstractmethod
     def build_model(self, input_shape, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
@@ -160,7 +155,7 @@ class BaseDeepRegressor(BaseRegressor, ABC):
         if hasattr(self, "history"):
             self.__dict__["history"] = self.history
 
-    def save(self, path=None):
+    def save(self, path=None, legacy_save=True):
         """Save serialized self to bytes-like object or to (.zip) file.
 
         Behaviour:
@@ -182,27 +177,57 @@ class BaseDeepRegressor(BaseRegressor, ABC):
                 path="/home/stored/estimator" then a zip file ``estimator.zip`` will be
                 stored in ``/home/stored/``.
 
+        legacy_save : bool, default = True
+            whether to use the legacy saving method for the model. If
+            tensorflow >= 2.16.0 is installed, this is ignored.
+            The default will switch to False in sktime 0.28.0, and the
+            legacy saving method will be removed in sktime 0.29.0.
+
         Returns
         -------
         if ``path`` is None - in-memory serialized self
         if ``path`` is file location - ZipFile with reference to the file
         """
+        # TODO 0.30.0 - remove the legacy_save parameter in sktime 0.30.0
+        # TODO 0.29.0 - change the default value of legacy_save to False
         import pickle
         import shutil
         from pathlib import Path
         from zipfile import ZipFile
 
+        if legacy_save:
+            from sktime.utils.warnings import warn
+
+            warn(
+                "WARNING: In the save method of classifiers and regressors,"
+                " saving logic has changed to be compatible with tensorflow 2.16. "
+                "The old saving logic is deprecated and will be removed in "
+                "sktime 0.30.0. "
+                "If tensorflow>=2.16.0 is installed, the new saving logic is always "
+                "used. If not, by default, the legacy saving logic is used until "
+                "sktime 0.28.last, and the new logic is used from sktime 0.29.0."
+                "For safe change in an environment with tensorflow<2.16.0, "
+                "set the legacy_save parameter explicitly to False to test the "
+                "new saving logic. If no issues are found, no changes to your code "
+                "are necessary. To keep using the legacy method, set the parameter "
+                "legacy_save to True. Note that the legacy_save parameter will be "
+                "removed entirely in sktime 0.30.0.",
+                FutureWarning,
+                obj=self,
+                stacklevel=2,
+            )
+
+        if _check_soft_dependencies("tensorflow>=2.16.0", severity="none"):
+            legacy_save = False
+
         if path is None:
             _check_soft_dependencies("h5py")
             import h5py
 
             in_memory_model = None
             if self.model_ is not None:
-                with h5py.File(
-                    "disk_less", "w", driver="core", backing_store=False
-                ) as h5file:
-                    self.model_.save(h5file)
-                    h5file.flush()
+                self.model_.save("disk_less.h5")
+                with h5py.File("disk_less.h5", "r") as h5file:
                     in_memory_model = h5file.id.get_file_image()
 
             in_memory_history = pickle.dumps(self.history.history)
@@ -226,7 +251,12 @@ class BaseDeepRegressor(BaseRegressor, ABC):
         path.mkdir()
 
         if self.model_ is not None:
-            self.model_.save(path / "keras/")
+            if not legacy_save:
+                keras_path = path / "keras" / "model.keras"
+                os.makedirs(keras_path.parent, exist_ok=True)
+                self.model_.save(keras_path)
+            else:
+                self.model_.save(path / "keras/")
 
         with open(path / "history", "wb") as history_writer:
             pickle.dump(self.history.history, history_writer)
@@ -254,11 +284,8 @@ class BaseDeepRegressor(BaseRegressor, ABC):
         -------
         Deserialized self resulting in output ``serial``, of ``cls.save(None)``
         """
-        _check_soft_dependencies("h5py")
         import pickle
-        from tempfile import TemporaryFile
 
-        import h5py
         from tensorflow.keras.models import load_model
 
         if not isinstance(serial, tuple):
@@ -278,11 +305,9 @@ class BaseDeepRegressor(BaseRegressor, ABC):
         if in_memory_model is None:
             cls.model_ = None
         else:
-            with TemporaryFile() as store_:
+            with open("diskless.h5", "wb") as store_:
                 store_.write(in_memory_model)
-                h5file = h5py.File(store_, "r")
-                cls.model_ = load_model(h5file)
-                h5file.close()
+                cls.model_ = load_model("diskless.h5")
 
         cls.history = pickle.loads(in_memory_history)
         return pickle.loads(serial)
@@ -314,9 +339,12 @@ class BaseDeepRegressor(BaseRegressor, ABC):
                     continue
                 zip_file.extract(file, temp_unzip_loc)
 
-        keras_location = temp_unzip_loc / "keras"
+        keras_location_legacy = temp_unzip_loc / "keras"
+        keras_location = temp_unzip_loc / "keras" / "model.keras"
         if keras_location.exists():
             cls.model_ = keras.models.load_model(keras_location)
+        elif keras_location_legacy.exists():
+            cls.model_ = keras.models.load_model(keras_location_legacy)
         else:
             cls.model_ = None
 
diff --git a/sktime/regression/deep_learning/cnn.py b/sktime/regression/deep_learning/cnn.py
index 505a75086..3ec565359 100644
--- a/sktime/regression/deep_learning/cnn.py
+++ b/sktime/regression/deep_learning/cnn.py
@@ -92,9 +92,7 @@ class CNNRegressor(BaseDeepRegressor):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__(
-            batch_size=batch_size,
-        )
+        super().__init__()
         self.n_conv_layers = n_conv_layers
         self.avg_pool_size = avg_pool_size
         self.kernel_size = kernel_size
diff --git a/sktime/regression/deep_learning/cntc.py b/sktime/regression/deep_learning/cntc.py
index 44ca435df..2a88293f6 100644
--- a/sktime/regression/deep_learning/cntc.py
+++ b/sktime/regression/deep_learning/cntc.py
@@ -97,9 +97,10 @@ class CNTCRegressor(BaseDeepRegressor):
         self.loss = loss
         self.metrics = metrics
         self.random_state = random_state
-        self._network = CNTCNetwork()
 
-        super().__init__(batch_size=batch_size, random_state=random_state)
+        super().__init__()
+
+        self._network = CNTCNetwork()
 
     def build_model(self, input_shape, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
diff --git a/sktime/regression/deep_learning/fcn.py b/sktime/regression/deep_learning/fcn.py
index e75ac6f50..a6df9e45b 100644
--- a/sktime/regression/deep_learning/fcn.py
+++ b/sktime/regression/deep_learning/fcn.py
@@ -71,7 +71,7 @@ class FCNRegressor(BaseDeepRegressor):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
+
         self.n_epochs = n_epochs
         self.batch_size = batch_size
         self.callbacks = callbacks
@@ -83,6 +83,9 @@ class FCNRegressor(BaseDeepRegressor):
         self.use_bias = use_bias
         self.optimizer = optimizer
         self.history = None
+
+        super().__init__()
+
         self._network = FCNNetwork(
             random_state=self.random_state,
         )
diff --git a/sktime/regression/deep_learning/inceptiontime.py b/sktime/regression/deep_learning/inceptiontime.py
index 9e5e7d055..bef5e9ebd 100644
--- a/sktime/regression/deep_learning/inceptiontime.py
+++ b/sktime/regression/deep_learning/inceptiontime.py
@@ -68,7 +68,6 @@ class InceptionTimeRegressor(BaseDeepRegressor):
         metrics=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.verbose = verbose
 
@@ -86,7 +85,8 @@ class InceptionTimeRegressor(BaseDeepRegressor):
         self.use_bottleneck = use_bottleneck
         self.use_residual = use_residual
         self.verbose = verbose
-        self._is_fitted = False
+
+        super().__init__()
 
         network_params = {
             "n_filters": n_filters,
@@ -153,7 +153,7 @@ class InceptionTimeRegressor(BaseDeepRegressor):
 
         check_random_state(self.random_state)
         self.input_shape = X.shape[1:]
-        self.model_ = self.build_model(self.input_shape, self.n_classes_)
+        self.model_ = self.build_model(self.input_shape)
         if self.verbose:
             self.model_.summary()
 
diff --git a/sktime/regression/deep_learning/lstmfcn.py b/sktime/regression/deep_learning/lstmfcn.py
index f1dfe2b4a..e78211b16 100644
--- a/sktime/regression/deep_learning/lstmfcn.py
+++ b/sktime/regression/deep_learning/lstmfcn.py
@@ -52,6 +52,17 @@ class LSTMFCNRegressor(BaseDeepRegressor):
     ----------
     .. [1] Karim et al. Multivariate LSTM-FCNs for Time Series Classification, 2019
     https://arxiv.org/pdf/1801.04503.pdf
+
+    Examples
+    --------
+    >>> from sktime.datasets import load_unit_test
+    >>> from sktime.regression.deep_learning.lstmfcn import LSTMFCNRegressor
+    >>> X_train, y_train = load_unit_test(return_X_y=True, split="train")
+    >>> X_test, y_test = load_unit_test(return_X_y=True, split="test")
+    >>> regressor = LSTMFCNRegressor() # doctest: +SKIP
+    >>> regressor.fit(X_train, y_train) # doctest: +SKIP
+    LSTMFCNRegressor(...)
+    >>> y_pred = regressor.predict(X_test) # doctest: +SKIP
     """
 
     _tags = {
@@ -76,12 +87,6 @@ class LSTMFCNRegressor(BaseDeepRegressor):
         random_state=None,
         verbose=0,
     ):
-        super().__init__()
-
-        self.input_shape = None
-        self.model_ = None
-        self.history = None
-
         # predefined
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -95,6 +100,12 @@ class LSTMFCNRegressor(BaseDeepRegressor):
         self.random_state = random_state
         self.verbose = verbose
 
+        super().__init__()
+
+        self.input_shape = None
+        self.model_ = None
+        self.history = None
+
         self._network = LSTMFCNNetwork(
             kernel_sizes=self.kernel_sizes,
             filter_sizes=self.filter_sizes,
@@ -103,7 +114,6 @@ class LSTMFCNRegressor(BaseDeepRegressor):
             dropout=self.dropout,
             attention=self.attention,
         )
-        self._is_fitted = False
 
     def build_model(self, input_shape, **kwargs):
         """
diff --git a/sktime/regression/deep_learning/macnn.py b/sktime/regression/deep_learning/macnn.py
index 09fb22887..b546b1301 100644
--- a/sktime/regression/deep_learning/macnn.py
+++ b/sktime/regression/deep_learning/macnn.py
@@ -94,7 +94,6 @@ class MACNNRegressor(BaseDeepRegressor):
         verbose=False,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -113,6 +112,9 @@ class MACNNRegressor(BaseDeepRegressor):
         self.callbacks = callbacks
         self.random_state = random_state
         self.verbose = verbose
+
+        super().__init__()
+
         self.history = None
         self._network = MACNNNetwork(
             padding=self.padding,
diff --git a/sktime/regression/deep_learning/mcdcnn.py b/sktime/regression/deep_learning/mcdcnn.py
index 55ef4e799..c6c064dd8 100644
--- a/sktime/regression/deep_learning/mcdcnn.py
+++ b/sktime/regression/deep_learning/mcdcnn.py
@@ -105,7 +105,6 @@ class MCDCNNRegressor(BaseDeepRegressor):
         random_state=0,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -123,6 +122,9 @@ class MCDCNNRegressor(BaseDeepRegressor):
         self.optimizer = optimizer
         self.verbose = verbose
         self.random_state = random_state
+
+        super().__init__()
+
         self.history = None
         self._network = MCDCNNNetwork(
             kernel_size=self.kernel_size,
diff --git a/sktime/regression/deep_learning/mlp.py b/sktime/regression/deep_learning/mlp.py
index 5c0f26d75..5dfa8ff04 100644
--- a/sktime/regression/deep_learning/mlp.py
+++ b/sktime/regression/deep_learning/mlp.py
@@ -48,6 +48,17 @@ class MLPRegressor(BaseDeepRegressor):
     .. [1] Wang et. al, Time series classification from
     scratch with deep neural networks: A strong baseline,
     International joint conference on neural networks (IJCNN), 2017.
+
+    Examples
+    --------
+    >>> from sktime.datasets import load_unit_test
+    >>> from sktime.regression.deep_learning.mlp import MLPRegressor
+    >>> X_train, y_train = load_unit_test(return_X_y=True, split="train")
+    >>> X_test, y_test = load_unit_test(return_X_y=True, split="test")
+    >>> regressor = MLPRegressor() # doctest: +SKIP
+    >>> regressor.fit(X_train, y_train) # doctest: +SKIP
+    MLPRegressor(...)
+    >>> y_pred = regressor.predict(X_test) # doctest: +SKIP
     """
 
     _tags = {
@@ -72,7 +83,7 @@ class MLPRegressor(BaseDeepRegressor):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
+
         self.callbacks = callbacks
         self.n_epochs = n_epochs
         self.batch_size = batch_size
@@ -83,6 +94,9 @@ class MLPRegressor(BaseDeepRegressor):
         self.activation = activation
         self.use_bias = use_bias
         self.optimizer = optimizer
+
+        super().__init__()
+
         self.history = None
         self._network = MLPNetwork(
             random_state=self.random_state,
diff --git a/sktime/regression/deep_learning/resnet.py b/sktime/regression/deep_learning/resnet.py
index 4a678ae44..c41ccfd2d 100644
--- a/sktime/regression/deep_learning/resnet.py
+++ b/sktime/regression/deep_learning/resnet.py
@@ -82,7 +82,6 @@ class ResNetRegressor(BaseDeepRegressor):
         optimizer=None,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.n_epochs = n_epochs
         self.callbacks = callbacks
@@ -94,6 +93,9 @@ class ResNetRegressor(BaseDeepRegressor):
         self.activation = activation
         self.use_bias = use_bias
         self.optimizer = optimizer
+
+        super().__init__()
+
         self.history = None
         self._network = ResNetNetwork(random_state=random_state)
 
diff --git a/sktime/regression/deep_learning/rnn.py b/sktime/regression/deep_learning/rnn.py
index 1ea5ed4bd..a3d655ce6 100644
--- a/sktime/regression/deep_learning/rnn.py
+++ b/sktime/regression/deep_learning/rnn.py
@@ -47,6 +47,15 @@ class SimpleRNNRegressor(BaseDeepRegressor):
     ----------
     ..[1] benchmark forecaster in M4 forecasting competition:
     https://github.com/Mcompetitions/M4-methods
+
+    Examples
+    --------
+    >>> from sktime.regression.deep_learning.rnn import SimpleRNNRegressor
+    >>> from sktime.datasets import load_unit_test
+    >>> X_train, Y_train = load_unit_test(split="train")
+    >>> clf = SimpleRNNRegressor(n_epochs=20, batch_size=4) # doctest: +SKIP
+    >>> clf.fit(X_train, Y_train) # doctest: +SKIP
+    SimpleRNNRegressor(...)
     """
 
     _tags = {
@@ -74,8 +83,7 @@ class SimpleRNNRegressor(BaseDeepRegressor):
     ):
         _check_dl_dependencies(severity="error")
 
-        super().__init__()
-
+        self.n_epochs = n_epochs
         self.batch_size = batch_size
         self.verbose = verbose
         self.units = units
@@ -87,9 +95,11 @@ class SimpleRNNRegressor(BaseDeepRegressor):
         self.activation = activation
         self.use_bias = use_bias
         self.optimizer = optimizer
+
+        super().__init__()
+
         self.history = None
         self._network = RNNNetwork(random_state=random_state, units=units)
-        self.n_epochs = n_epochs
 
     def build_model(self, input_shape, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
@@ -117,7 +127,7 @@ class SimpleRNNRegressor(BaseDeepRegressor):
         )(output_layer)
 
         self.optimizer_ = (
-            keras.optimizers.RMSprop(lr=0.001)
+            keras.optimizers.RMSprop(learning_rate=0.001)
             if self.optimizer is None
             else self.optimizer
         )
diff --git a/sktime/regression/deep_learning/tapnet.py b/sktime/regression/deep_learning/tapnet.py
index 785c300bf..eb21135e0 100644
--- a/sktime/regression/deep_learning/tapnet.py
+++ b/sktime/regression/deep_learning/tapnet.py
@@ -107,7 +107,6 @@ class TapNetRegressor(BaseDeepRegressor):
         verbose=False,
     ):
         _check_dl_dependencies(severity="error")
-        super().__init__()
 
         self.batch_size = batch_size
         self.random_state = random_state
@@ -136,6 +135,8 @@ class TapNetRegressor(BaseDeepRegressor):
         self.use_rp = use_rp
         self.rp_params = rp_params
 
+        super().__init__()
+
         self._network = TapNetNetwork(
             dropout=self.dropout,
             filter_sizes=self.filter_sizes,
diff --git a/sktime/transformations/compose/_ytox.py b/sktime/transformations/compose/_ytox.py
index c33978d1b..942a220f3 100644
--- a/sktime/transformations/compose/_ytox.py
+++ b/sktime/transformations/compose/_ytox.py
@@ -30,37 +30,90 @@ class YtoX(BaseTransformer):
     --------
     Use case: creating exogenous data from index, if no exogenous data is available.
 
+    >>> from sktime.datasets import load_airline
+    >>> from sktime.transformations.compose import YtoX
     >>> from sktime.transformations.series.fourier import FourierFeatures
-    >>> from sktime.transformations.series.ytox import YtoX  # doctest: +SKIP
-    >>> from sktime.forecasting.compose import ForecastingPipeline  # doctest: +SKIP
-    >>> from sktime.forecasting.arima import ARIMA  # doctest: +SKIP
+    >>> from sktime.forecasting.arima import ARIMA
+    >>> from sktime.forecasting.compose import ForecastingPipeline
     >>>
-    >>> # create a pipeline with Fourier features and ARIMA
-    >>> ARIMA = ARIMA(order=(1, 1, 1))  # doctest: +SKIP
+    >>> # data with no exogenous features
+    >>> y = load_airline()
     >>>
+    >>> # create a pipeline with Fourier features and ARIMA
     >>> pipe = ForecastingPipeline(
     ...     [
-    ...         YtoX(),
-    ...         FourierFeatures(sp_list=[24, 24 * 7], fourier_terms_list=[10, 5]),
-    ...         ARIMA,
+    ...             YtoX(),
+    ...             FourierFeatures(sp_list=[24, 24 * 7], fourier_terms_list=[10, 5]),
+    ...             ARIMA(order=(1, 1, 1))  # doctest: +SKIP,
     ...     ]
     ... )  # doctest: +SKIP
+    >>>
+    >>> # fit and forecast, using Fourier features as exogenous data
+    >>> pred = pipe.fit_predict(y, fh=[1, 2, 3, 4, 5])  # doctest: +SKIP
 
     Use case: using lagged endogenous variables as exogeneous data.
 
-    >>> from sktime.forecasting.sarimax import SARIMAX
+    >>> from sktime.datasets import load_airline
     >>> from sktime.transformations.compose import YtoX
-    >>> from sktime.transformations.series.impute import Imputer
     >>> from sktime.transformations.series.lag import Lag
+    >>> from sktime.transformations.series.impute import Imputer
+    >>> from sktime.forecasting.sarimax import SARIMAX
+    >>>
+    >>> # data with no exogenous features
+    >>> y = load_airline()
     >>>
+    >>> # create the pipeline
     >>> lagged_y_trafo = YtoX() * Lag(1, index_out="original") * Imputer()
+    >>>
     >>> # we need to specify index_out="original" as otherwise ARIMA gets 1 and 2 ahead
-    >>> # use laggged_y_trafo to generate X
+    >>> # use lagged_y_trafo to generate X
     >>> forecaster = lagged_y_trafo ** SARIMAX()  # doctest: +SKIP
     >>>
-    >>> # fit and forecast next value
-    >>> forecaster.fit(y_train, fh=[1])  # doctest: +SKIP
-    >>> forecaster.predict()  # doctest: +SKIP
+    >>> # fit and forecast next value, with lagged y as exogenous data
+    >>> forecaster.fit(y, fh=[1])  # doctest: +SKIP
+    >>> y_pred = forecaster.predict()  # doctest: +SKIP
+
+    Use case: using summarized endogenous variables as exogeneous data.
+
+    >>> from sktime.datasets import load_airline
+    >>> from sktime.transformations.series.summarize import WindowSummarizer
+    >>> from sktime.transformations.compose import YtoX
+    >>> from sktime.forecasting.compose import make_reduction
+    >>> from sktime.forecasting.compose import ForecastingPipeline
+    >>> from sklearn.ensemble import GradientBoostingRegressor  # doctest: +SKIP
+    >>>
+    >>> # data with no exogenous features
+    >>> y = load_airline()
+    >>>
+    >>> # keyword arguments for WindowSummarizer
+    >>> kwargs = {
+    ...     "lag_feature": {
+    ...         "lag": [1],
+    ...         "mean": [[1, 3], [3, 6]],
+    ...         "std": [[1, 4]],
+    ...     },
+    ...     "truncate": 'bfill',
+    ... }
+    >>>
+    >>> # create forecaster from sklearn regressor using make_reduction
+    >>> forecaster = make_reduction(
+    ...     GradientBoostingRegressor(),
+    ...     strategy="recursive",
+    ...     pooling="global",
+    ...     window_length=12,
+    ... )  # doctest: +SKIP
+    >>>
+    >>> # create the pipeline
+    >>> pipe = ForecastingPipeline(
+    ...     steps=[
+    ...         ("ytox", YtoX()),
+    ...         ("summarizer", WindowSummarizer(**kwargs)),
+    ...         ("forecaster", forecaster),
+    ...     ]
+    ... )  # doctest: +SKIP
+    >>>
+    >>> # fit and forecast, with summarized y as exogenous data
+    >>> preds = pipe.fit_predict(y=y, fh=range(1, 20))  # doctest: +SKIP
     """
 
     _tags = {
diff --git a/sktime/transformations/panel/catch22.py b/sktime/transformations/panel/catch22.py
index 012acd836..69e424773 100644
--- a/sktime/transformations/panel/catch22.py
+++ b/sktime/transformations/panel/catch22.py
@@ -246,6 +246,7 @@ class Catch22(BaseTransformer):
         "fit_is_empty": True,
     }
 
+    # todo 0.29.0: remove n_jobs parameter
     def __init__(
         self,
         features: Union[int, str, List[Union[int, str]]] = "all",
@@ -264,12 +265,12 @@ class Catch22(BaseTransformer):
 
         # todo: remove this unimplemented logic
         self._transform_features = None
-        # todo 0.28.0: remove this warning and logic
+        # todo 0.29.0: remove this warning and logic
         self.n_jobs = n_jobs
         if n_jobs != "deprecated":
             warn(
                 "In Catch22, the parameter "
-                "n_jobs is deprecated and will be removed in v0.28.0. "
+                "n_jobs is deprecated and will be removed in v0.29.0. "
                 "Instead, use set_config with the backend and backend:params "
                 "config fields, and set backend to 'joblib' and pass n_jobs "
                 "as a parameter of backend_params. ",
diff --git a/sktime/transformations/panel/shapelet_transform/__init__.py b/sktime/transformations/panel/shapelet_transform/__init__.py
new file mode 100644
index 000000000..d6e504484
--- /dev/null
+++ b/sktime/transformations/panel/shapelet_transform/__init__.py
@@ -0,0 +1,14 @@
+"""Shapelet Transformers."""
+__all__ = [
+    "ShapeletTransform",
+    "RandomShapeletTransform",
+    "ShapeletTransformPyts",
+]
+
+from sktime.transformations.panel.shapelet_transform._shapelet_transform import (
+    RandomShapeletTransform,
+    ShapeletTransform,
+)
+from sktime.transformations.panel.shapelet_transform._shapelet_transform_pyts import (
+    ShapeletTransformPyts,
+)
diff --git a/sktime/transformations/panel/shapelet_transform.py b/sktime/transformations/panel/shapelet_transform/_shapelet_transform.py
similarity index 100%
rename from sktime/transformations/panel/shapelet_transform.py
rename to sktime/transformations/panel/shapelet_transform/_shapelet_transform.py
diff --git a/sktime/transformations/panel/shapelet_transform/_shapelet_transform_pyts.py b/sktime/transformations/panel/shapelet_transform/_shapelet_transform_pyts.py
new file mode 100644
index 000000000..3f40d621e
--- /dev/null
+++ b/sktime/transformations/panel/shapelet_transform/_shapelet_transform_pyts.py
@@ -0,0 +1,196 @@
+"""Shapelet transformer, from pyts."""
+# copyright: sktime developers, BSD-3-Clause License (see LICENSE file)
+
+__author__ = ["Abhay-Lejith"]
+__all__ = ["ShapeletTransformPyts"]
+
+from sktime.base.adapters._pyts import _PytsAdapter
+from sktime.transformations.base import BaseTransformer
+
+
+class ShapeletTransformPyts(_PytsAdapter, BaseTransformer):
+    """Shapelet Transform, from ``pyts``.
+
+    Direct interface to ``pyts.transformation.ShapeletTransform``.
+
+    The Shapelet Transform algorithm extracts shapelets from a data set of time series
+    and returns the distances between the shapelets and the time series. A shapelet is
+    defined as a subset of a time series, that is a set of values from consecutive time
+    points. The distance between a shapelet and a time series is defined as the minimum
+    of the distances between this shapelet and all the shapelets of same length
+    extracted from this time series. The most discriminative shapelets are selected.
+    Two criteria are made available: mutual information and F-scores.
+
+    Parameters
+    ----------
+    n_shapelets : int or 'auto' (default = 'auto')
+        The number of shapelets to keep. If 'auto', `n_timestamps // 2`
+        shapelets are considered, where `n_timestamps` is the number of
+        time points in the dataset. Note that there might be a smaller
+        number of shapelets if fewer than ``n_shapelets`` shapelets have been
+        extracted during the search.
+
+    criterion : 'mutual_info' or 'anova' (default = 'mutual_info')
+        Criterion to perform the selection of the shapelets.
+        'mutual_info' uses the mutual information, while 'anova' use
+        the ANOVA F-value.
+
+    window_sizes : array-like or 'auto '(default = 'auto')
+        Size of the sliding windows. If 'auto', the range for the
+        window sizes is determined automatically.
+        Otherwise, all the elements must be either integers or floats.
+        In the latter case, each element represents the percentage
+        of the size of each time series and must be between 0 and 1; the size
+        of the sliding windows will be computed as
+        ``np.ceil(window_sizes * n_timestamps)``.
+
+    window_steps : None or array-like (default = None)
+        Step of the sliding windows. If None, each ``window_step`` is equal
+        to 1. Otherwise, all the elements must be either integers or floats.
+        In the latter case, each element represents the percentage of the size
+        of each time series and must be between 0 and 1; the step of the
+        sliding windows will be computed as
+        ``np.ceil(window_steps * n_timestamps)``.
+        Must be None if ``window_sizes='auto'``.
+
+    remove_similar : bool (default = True)
+        If True, self-similar shapelets are removed, keeping only
+        the non-self-similar shapelets with the highest scores. Two
+        shapelets are considered to be self-similar if they are
+        taken from the the same time series and have at least one
+        overlapping index.
+
+    sort : bool (default = False)
+        If True, shapelets are sorted in descending order according to
+        their associated scores. If False, the order is undefined.
+
+    verbose : int (default = 0)
+        Verbosity level when fitting: if non zero, progress messages are
+        printed. Above 50, the output is sent to stdout.
+        The frequency of the messages increases with the verbosity level.
+
+    random_state : int, RandomState instance or None (default = None)
+        If int, random_state is the seed used by the random number generator;
+        If RandomState instance, random_state is the random number generator;
+        If None, the random number generator is the RandomState instance used
+        by ``np.random``. Only used if ``window_sizes='auto'`` in order to
+        subsample the dataset to find the best range or if
+        ``criterion=='mutual_info'`` to add small noise to the data.
+
+    n_jobs : None or int (default = None)
+        The number of jobs to run in parallel for ``fit``.
+        If -1, then the number of jobs is set to the number of cores.
+
+    Attributes
+    ----------
+    shapelets_ : array, shape = (n_shapelets,)
+        The array with the selected shapelets.
+
+    indices_ : array, shape = (n_shapelets, 3)
+        The indices for the corresponding shapelets in the training set.
+        The first column consists of the indices of the samples.
+        The second column consists of the starting indices (included)
+        of the shapelets. The third column consists of the ending indices
+        (excluded) of the shapelets.
+
+    scores_ : array, shape = (n_shapelets,)
+        The scores associated to the shapelets. The higher, the more
+        discriminant.
+        If ``criterion='mutual_info'``, mutual information scores are reported.
+        If ``criterion='anova'``, F-scores are reported.
+
+    window_range_ : None or tuple
+        Range of the window sizes if ``window_sizes='auto'``. None otherwise.
+
+    References
+    ----------
+    .. [1] J. Lines, L. M. Davis, J. Hills and A. Bagnall, "A Shapelet
+           Transform for Time Series Classification". Data Mining and Knowledge
+           Discovery, 289-297 (2012).
+
+    Examples
+    --------
+    >>> from sktime.transformations.panel.shapelet_transform import (
+    ...     ShapeletTransformPyts
+    ... )
+    >>> from sktime.datasets import load_unit_test
+    >>> X_train, y_train = load_unit_test(split="train") # doctest: +SKIP
+    >>> stp = ShapeletTransformPyts() # doctest: +SKIP
+    >>> stp.fit(X_train,y_train) # doctest: +SKIP
+    >>> stp.transform(X_train) # doctest: +SKIP
+    """
+
+    _tags = {
+        # packaging info
+        # --------------
+        "authors": "Abhay-Lejith",
+        "python_dependencies": "pyts",
+        # univariate-only controls whether internal X can be univariate/multivariate
+        # if True (only univariate), always applies vectorization over variables
+        "univariate-only": True,
+        "scitype:transform-input": "Series",
+        "scitype:transform-output": "Primitives",
+        "scitype:instancewise": False,
+        "fit_is_empty": False,
+        "y_inner_mtype": "numpy1D",
+        "requires_y": True,
+    }
+
+    _estimator_attr = "_pyts_shapelet_transform"
+
+    def _get_pyts_class(self):
+        """Get pyts class.
+
+        should import and return pyts class
+        """
+        from pyts.transformation.shapelet_transform import ShapeletTransform
+
+        return ShapeletTransform
+
+    def __init__(
+        self,
+        n_shapelets="auto",
+        criterion="mutual_info",
+        window_sizes="auto",
+        window_steps=None,
+        remove_similar=True,
+        sort=False,
+        verbose=0,
+        random_state=None,
+        n_jobs=None,
+    ):
+        self.n_shapelets = n_shapelets
+        self.criterion = criterion
+        self.window_sizes = window_sizes
+        self.window_steps = window_steps
+        self.remove_similar = remove_similar
+        self.sort = sort
+        self.verbose = verbose
+        self.random_state = random_state
+        self.n_jobs = n_jobs
+
+        super().__init__()
+
+    @classmethod
+    def get_test_params(cls, parameter_set="default"):
+        """
+        Return testing parameter settings for the estimator.
+
+        Parameters
+        ----------
+        parameter_set : str, default="default"
+            Name of the set of test parameters to return, for use in tests. If no
+            special parameters are defined for a value, will return `"default"` set.
+
+
+        Returns
+        -------
+        params : dict or list of dict, default = {}
+            Parameters to create testing instances of the class
+            Each dict are parameters to construct an "interesting" test instance, i.e.,
+            `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
+            `create_test_instance` uses the first (or only) dictionary in `params`
+        """
+        params1 = {"criterion": "anova", "n_shapelets": 10}
+        params2 = {"window_sizes": [3]}
+        return [params1, params2]
diff --git a/sktime/transformations/series/detrend/__init__.py b/sktime/transformations/series/detrend/__init__.py
index 875d10417..c52aa2db1 100644
--- a/sktime/transformations/series/detrend/__init__.py
+++ b/sktime/transformations/series/detrend/__init__.py
@@ -2,7 +2,13 @@
 """Transformer module for detrending and deseasonalization."""
 
 __author__ = ["mloning", "eyalshafran", "SveaMeyer13"]
-__all__ = ["Detrender", "Deseasonalizer", "ConditionalDeseasonalizer", "STLTransformer"]
+__all__ = [
+    "Detrender",
+    "Deseasonalizer",
+    "ConditionalDeseasonalizer",
+    "STLTransformer",
+    "MSTL",
+]
 
 from sktime.transformations.series.detrend._deseasonalize import (
     ConditionalDeseasonalizer,
@@ -10,3 +16,4 @@ from sktime.transformations.series.detrend._deseasonalize import (
     STLTransformer,
 )
 from sktime.transformations.series.detrend._detrend import Detrender
+from sktime.transformations.series.detrend.mstl import MSTL
diff --git a/sktime/transformations/series/detrend/mstl.py b/sktime/transformations/series/detrend/mstl.py
index e19fc9ab8..12c1b7b0b 100644
--- a/sktime/transformations/series/detrend/mstl.py
+++ b/sktime/transformations/series/detrend/mstl.py
@@ -88,7 +88,7 @@ class MSTL(BaseTransformer):
     --------
     >>> import matplotlib.pyplot as plt  # doctest: +SKIP
     >>> from sktime.datasets import load_airline
-    >>> from sktime.transformations.series.detrend.mstl import MSTL
+    >>> from sktime.transformations.series.detrend import MSTL
     >>> y = load_airline()
     >>> y.index = y.index.to_timestamp()
     >>> mstl = MSTL(return_components=True)  # doctest: +SKIP
diff --git a/sktime/transformations/series/kalman_filter.py b/sktime/transformations/series/kalman_filter.py
index 0680b3ba9..9f317c00c 100644
--- a/sktime/transformations/series/kalman_filter.py
+++ b/sktime/transformations/series/kalman_filter.py
@@ -760,8 +760,23 @@ class KalmanFilterTransformerPK(BaseKalmanFilter, BaseTransformer):
             instance.
             ``create_test_instance`` uses the first (or only) dictionary in ``params``
         """
-        params = {"state_dim": 2}
-        return params
+        params1 = {"state_dim": 2}
+        params2 = {
+            "state_dim": 2,
+            "initial_state": np.array([0, 0]),
+            "initial_state_covariance": np.array([[0.1, 0], [0.1, 0]]),
+            "state_transition": np.array([[1, 0.1], [0, 1]]),
+            "process_noise": np.array(
+                [
+                    [1 / 4 * (0.1**4), 1 / 2 * (0.1**3)],
+                    [1 / 2 * (0.1**3), 0.1**2],
+                ]
+            )
+            * 0.1,
+            "denoising": True,
+            "estimate_matrices": ["measurement_noise"],
+        }
+        return [params1, params2]
 
     def _em(self, X, measurement_dim, state_dim):
         """Estimate matrices algorithm if requested by user.
@@ -1298,8 +1313,25 @@ class KalmanFilterTransformerFP(BaseKalmanFilter, BaseTransformer):
             instance.
             ``create_test_instance`` uses the first (or only) dictionary in ``params``
         """
-        params = {"state_dim": 2}
-        return params
+        params1 = {"state_dim": 2}
+        params2 = {
+            "state_dim": 2,
+            "initial_state": np.array([0, 0]),
+            "initial_state_covariance": np.array([[0.1, 0], [0.1, 0]]),
+            "state_transition": np.array([[1, 0.1], [0, 1]]),
+            "process_noise": np.array(
+                [
+                    [1 / 4 * (0.1**4), 1 / 2 * (0.1**3)],
+                    [1 / 2 * (0.1**3), 0.1**2],
+                ]
+            )
+            * 0.1,
+            "measurement_function": np.array([[1, 0]]),
+            "measurement_noise": np.array([[0.1]]),
+            "denoising": True,
+            "estimate_matrices": ["measurement_noise"],
+        }
+        return [params1, params2]
 
     def _get_iter_t_matrices(self, X, G, u, t, time_steps, shapes):
         """Extract data to be used at time step 't' of the Kalman filter iterations.
diff --git a/sktime/transformations/series/summarize.py b/sktime/transformations/series/summarize.py
index 8347e2289..86d000ad7 100644
--- a/sktime/transformations/series/summarize.py
+++ b/sktime/transformations/series/summarize.py
@@ -473,38 +473,37 @@ def _window_feature(Z, summarizer=None, window=None, bfill=False):
             if bfill is False:
                 feat = Z.apply(
                     lambda x: getattr(
-                        x.shift(lag).rolling(
-                            window=window_length, min_periods=window_length
-                        ),
+                        x.rolling(window=window_length, min_periods=window_length),
                         summarizer,
-                    )()
+                    )().shift(lag)
                 )
             else:
                 feat = Z.apply(
                     lambda x: getattr(
-                        x.shift(lag)
-                        .bfill()
-                        .rolling(window=window_length, min_periods=window_length),
+                        x.rolling(window=window_length, min_periods=window_length),
                         summarizer,
                     )()
+                    .shift(lag)
+                    .bfill()
                 )
     else:
-        if bfill is False:
-            feat = Z.shift(lag)
-        else:
-            feat = Z.shift(lag).bfill()
         if isinstance(Z, pd.core.groupby.generic.SeriesGroupBy) and callable(
             summarizer
         ):
-            feat = feat.rolling(window_length).apply(summarizer, raw=True)
+            feat = Z.rolling(window_length).apply(summarizer, raw=True)
         elif not isinstance(Z, pd.core.groupby.generic.SeriesGroupBy) and callable(
             summarizer
         ):
-            feat = feat.apply(
+            feat = Z.apply(
                 lambda x: x.rolling(
                     window=window_length, min_periods=window_length
                 ).apply(summarizer, raw=True)
             )
+        if bfill is False:
+            feat = Z.shift(lag)
+        else:
+            feat = Z.shift(lag).bfill()
+
         feat = pd.DataFrame(feat)
     if bfill is True:
         feat = feat.bfill()
diff --git a/sktime/transformations/series/temporian.py b/sktime/transformations/series/temporian.py
new file mode 100644
index 000000000..01ddf472a
--- /dev/null
+++ b/sktime/transformations/series/temporian.py
@@ -0,0 +1,154 @@
+# copyright: sktime developers, BSD-3-Clause License (see LICENSE file)
+
+"""Implementation of TemporianTransformer. Contributed by the Temporian team."""
+
+__author__ = ["ianspektor", "javiber"]
+
+from sktime.transformations.base import BaseTransformer
+
+
+class TemporianTransformer(BaseTransformer):
+    """Applies a Temporian function to the input time series.
+
+    This transformer applies a Temporian [1]_ function to the input time series.
+
+    The conversion from sktime's internal representation to Temporian's EventSet [2]_
+    and back is handled automatically by the transformer.
+
+    Parameters
+    ----------
+    function : Callable[[temporian.EventSet], temporian.EventSet]
+        Temporian function to apply to the input time series. The function must receive
+        and return a single Temporian EventSet, and can apply an arbitrary number of
+        Temporian operators to its input.
+    compile : bool, default=False
+        If True, the function will be compiled using Temporian's @tp.compile [3]_
+        decorator, which can lead to significant speedups by optimizing the graph of
+        operations.
+
+    Examples
+    --------
+    >>> from sktime.datasets import load_airline
+    >>> from sktime.transformations.series.temporian import TemporianTransformer
+    >>> import temporian as tp  # doctest: +SKIP
+    >>>
+    >>> def function(evset):  # doctest: +SKIP
+    ...     return evset.simple_moving_average(tp.duration.days(3 * 365))  \
+        # doctest: +SKIP
+    >>> transformer = TemporianTransformer(function=function)  # doctest: +SKIP
+    >>> X = load_airline()  # doctest: +SKIP
+    >>> X_averaged = transformer.fit_transform(X)  # doctest: +SKIP
+
+    References
+    ----------
+    .. [1] https://temporian.readthedocs.io/en/stable/
+    .. [2] https://temporian.readthedocs.io/en/stable/reference/temporian/EventSet/
+    .. [3] https://temporian.readthedocs.io/en/stable/reference/temporian/compile/
+    """
+
+    _tags = {
+        # packaging info
+        # --------------
+        "authors": ["ianspektor", "javiber"],
+        "maintainers": ["ianspektor", "javiber"],
+        "python_dependencies": ["temporian"],
+        "python_version": ">=3.8",
+        # estimator tags
+        # --------------
+        "univariate-only": False,
+        "scitype:transform-input": "Series",
+        "scitype:transform-output": "Series",
+        "scitype:instancewise": True,
+        "scitype:transform-labels": "None",
+        "X_inner_mtype": "pd.DataFrame",
+        "fit_is_empty": True,
+        "capability:inverse_transform": False,
+        "capability:unequal_length": True,
+        "handles-missing-data": False,
+    }
+
+    def __init__(self, function, compile=False):
+        self.function = function
+        self.compile = compile
+
+        super().__init__()
+
+    def _transform(self, X, y=None):
+        """Transform X and return a transformed version.
+
+        private _transform containing core logic, called from transform
+
+        Parameters
+        ----------
+        X : pd.DataFrame
+            if self.get_tag("univariate-only")==True:
+                guaranteed to have a single column
+            if self.get_tag("univariate-only")==False: no restrictions apply
+        y : None, present only for interface compatibility
+
+        Returns
+        -------
+        transformed version of X
+        """
+        import temporian as tp
+
+        X_noindex = X.reset_index(drop=False)
+        X_noindex.columns = X_noindex.columns.astype(str)
+        timestamps_col = X_noindex.columns[0]
+        evset = tp.from_pandas(X_noindex, timestamps=timestamps_col)
+
+        function = tp.compile(self.function) if self.compile else self.function
+
+        res = function(evset)
+        if not isinstance(res, tp.EventSet):
+            raise TypeError(
+                f"Expected return type to be an EventSet but received a {type(res)}"
+            )
+
+        # Test that the sampling was not modified, otherwise the conversion back to
+        # pandas and the set_index would not work as expected
+        try:
+            res.check_same_sampling(evset)
+        except ValueError as exc:
+            raise ValueError(
+                "The resulting EventSet must have the same sampling as the input. "
+                "Visit our docs for more info "
+                "https://temporian.readthedocs.io/en/stable/user_guide/#sampling"
+            ) from exc
+
+        res = tp.to_pandas(res, timestamps=False)
+        res = res.set_index(X.index)
+
+        return res
+
+    @classmethod
+    def get_test_params(cls, parameter_set="default"):
+        """Return testing parameter settings for the estimator.
+
+        Parameters
+        ----------
+        parameter_set : str, default="default"
+            Name of the set of test parameters to return, for use in tests. If no
+            special parameters are defined for a value, will return `"default"` set.
+            There are currently no reserved values for transformers.
+
+        Returns
+        -------
+        params : dict or list of dict, default = {}
+            Parameters to create testing instances of the class
+            Each dict are parameters to construct an "interesting" test instance, i.e.,
+            `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
+            `create_test_instance` uses the first (or only) dictionary in `params`
+        """
+        return [
+            {"function": _test_function_single_op, "compile": False},
+            {"function": _test_function_many_ops, "compile": True},
+        ]
+
+
+def _test_function_single_op(evset):
+    return evset + 1
+
+
+def _test_function_many_ops(evset):
+    return evset.simple_moving_average(10).lag(10).resample(evset)


Test patch:
diff --git a/sktime/classification/tests/test_base.py b/sktime/classification/tests/test_base.py
index fe1faa375..92a2e6ab2 100644
--- a/sktime/classification/tests/test_base.py
+++ b/sktime/classification/tests/test_base.py
@@ -500,9 +500,7 @@ def test_deep_estimator_full(optimizer):
         assert serialize(full_dummy.optimizer) == serialize(deserialized_full.optimizer)
 
         # assert weights of optimizers are same
-        assert (
-            full_dummy.optimizer.variables() == deserialized_full.optimizer.variables()
-        )
+        assert full_dummy.optimizer.variables == deserialized_full.optimizer.variables
 
         # remove optimizers from both to do full dict check,
         # since two different objects
diff --git a/sktime/forecasting/base/tests/test_fh.py b/sktime/forecasting/base/tests/test_fh.py
index 524163439..206470066 100644
--- a/sktime/forecasting/base/tests/test_fh.py
+++ b/sktime/forecasting/base/tests/test_fh.py
@@ -41,6 +41,7 @@ from sktime.utils.datetime import (
     _shift,
     infer_freq,
 )
+from sktime.utils.validation._dependencies import _check_soft_dependencies
 from sktime.utils.validation.series import is_in_valid_index_types, is_integer_index
 
 
@@ -326,11 +327,16 @@ FREQUENCY_STRINGS = [*FIXED_FREQUENCY_STRINGS, *NON_FIXED_FREQUENCY_STRINGS]
 
 def _get_expected_freqstr(freqstr):
     # special case for 10min, T is being deprecated and replaced by min
-    if freqstr == "10min":
-        fh_freqstr_expected = "10T"
-    else:
-        fh_freqstr_expected = freqstr
-    return fh_freqstr_expected
+    if _check_soft_dependencies("pandas<2.2.0", severity="none"):
+        if freqstr == "10min":
+            return "10T"
+        return freqstr
+    # on more recent pandas versions, >=2.2.0
+    if freqstr == "H":
+        return "h"
+    if freqstr == "M":
+        return "ME"
+    return freqstr
 
 
 @pytest.mark.parametrize("freqstr", FREQUENCY_STRINGS)
diff --git a/sktime/tests/_config.py b/sktime/tests/_config.py
index 144c8adcd..cc1024f4e 100644
--- a/sktime/tests/_config.py
+++ b/sktime/tests/_config.py
@@ -34,8 +34,6 @@ EXCLUDE_ESTIMATORS = [
     # DL classifier suspected to cause hangs and memouts, see #4610
     "FCNClassifier",
     "MACNNClassifier",
-    "SimpleRNNClassifier",
-    "SimpleRNNRegressor",
     "EditDist",
     "CNNClassifier",
     "FCNClassifier",
@@ -48,7 +46,6 @@ EXCLUDE_ESTIMATORS = [
     "FCNRegressor",
     "LSTMFCNRegressor",
     "MACNNRegressor",
-    "InceptionTimeRegressor",
     "CNTCClassifier",
     "CNTCRegressor",
 ]
@@ -218,6 +215,8 @@ EXCLUDED_TESTS = {
     "StatsForecastMSTL": ["test_pred_int_tag"],
     # KNeighborsTimeSeriesClassifierTslearn crashes in parallel mode
     "KNeighborsTimeSeriesClassifierTslearn": ["test_multiprocessing_idempotent"],
+    # ShapeletTransformPyts creates nested numpy shapelets sporadically, see #6171
+    "ShapeletTransformPyts": ["test_non_state_changing_method_contract"],
 }
 
 # We use estimator tags in addition to class hierarchies to further distinguish
diff --git a/sktime/tests/test_softdeps.py b/sktime/tests/test_softdeps.py
index c83d6ada8..7f3d100b2 100644
--- a/sktime/tests/test_softdeps.py
+++ b/sktime/tests/test_softdeps.py
@@ -53,6 +53,7 @@ EXCEPTED_FROM_NO_DEP_CHECK = []
 EXCEPTED_FROM_GET_PARAMS_CHECK = [
     "PyODAnnotator",  # adapters always require soft dep. Here: pyod
     "HCrystalBallAdapter",  # adapters always require soft dep. Here: hcrystalball
+    "TemporianTransformer",  # adapters always require soft dep. Here: temporian
 ]
 
 
diff --git a/sktime/transformations/panel/shapelet_transform/tests/__init__.py b/sktime/transformations/panel/shapelet_transform/tests/__init__.py
new file mode 100644
index 000000000..37034d8e4
--- /dev/null
+++ b/sktime/transformations/panel/shapelet_transform/tests/__init__.py
@@ -0,0 +1,1 @@
+"""Shapelet transform unit tests."""
diff --git a/sktime/transformations/panel/tests/test_shapelet_transform.py b/sktime/transformations/panel/shapelet_transform/tests/test_shapelet_transform.py
similarity index 100%
rename from sktime/transformations/panel/tests/test_shapelet_transform.py
rename to sktime/transformations/panel/shapelet_transform/tests/test_shapelet_transform.py
diff --git a/sktime/transformations/panel/shapelet_transform/tests/test_shapelet_transform_pyts.py b/sktime/transformations/panel/shapelet_transform/tests/test_shapelet_transform_pyts.py
new file mode 100644
index 000000000..23384c840
--- /dev/null
+++ b/sktime/transformations/panel/shapelet_transform/tests/test_shapelet_transform_pyts.py
@@ -0,0 +1,40 @@
+"""ShapeletTransformPyts test code."""
+import numpy as np
+import pytest
+from numpy import testing
+
+from sktime.datasets import load_unit_test
+from sktime.tests.test_switch import run_test_for_class
+from sktime.transformations.panel.shapelet_transform import ShapeletTransformPyts
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(ShapeletTransformPyts),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_stp_on_unit_test():
+    """Test of ShapeletTransformPyts on unit test data."""
+    # load unit test data
+    X_train, y_train = load_unit_test(split="train")
+    indices = np.random.RandomState(0).choice(len(y_train), 5, replace=False)
+
+    # fit the shapelet transform
+    stp = ShapeletTransformPyts(n_shapelets=5, random_state=0)
+    stp.fit(X_train.iloc[indices], y_train[indices])
+
+    # assert transformed data is the same
+    data = stp.transform(X_train.iloc[indices])
+    testing.assert_array_almost_equal(
+        data, shapelet_transform_unit_test_data, decimal=4
+    )
+
+
+shapelet_transform_unit_test_data = np.array(
+    [
+        [176.0, 14.866069, 17.262677, 0.000000, 7.0],
+        [0.0, 51.908573, 82.197932, 65.517173, 15.0],
+        [223.0, 30.413813, 0.000000, 17.262677, 7.0],
+        [1.0, 61.159627, 71.515733, 59.502101, 19.0],
+        [32.0, 0.000000, 30.413813, 14.866069, 0.0],
+    ]
+)
diff --git a/sktime/transformations/series/tests/test_temporian.py b/sktime/transformations/series/tests/test_temporian.py
new file mode 100644
index 000000000..7a7138d10
--- /dev/null
+++ b/sktime/transformations/series/tests/test_temporian.py
@@ -0,0 +1,225 @@
+"""Tests for TemporianTransformer."""
+
+# copyright: sktime developers, BSD-3-Clause License (see LICENSE file).
+
+__author__ = ["ianspektor", "javiber"]
+
+from datetime import datetime
+from unittest.mock import patch
+
+import numpy as np
+import pandas as pd
+import pytest
+
+from sktime.datasets import load_solar
+from sktime.datatypes import get_examples
+from sktime.tests.test_switch import run_test_for_class
+from sktime.transformations.series.temporian import TemporianTransformer
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_flat_univariate():
+    """Tests basic function works on flat (non-indexed) univariate time series."""
+    X = load_solar()[0:32]
+
+    def function(evset):
+        return evset["solar_gen"] + 1
+
+    transformer = TemporianTransformer(function=function)
+    X_transformed = transformer.fit_transform(X=X)
+
+    pd.testing.assert_series_equal(X_transformed, X + 1)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_panel():
+    """Tests basic function works on Panels."""
+
+    def function(evset):
+        return evset + 1
+
+    examples = get_examples("pd-multiindex", as_scitype="Panel").values()
+    assert len(examples) > 0
+
+    for X in examples:
+        transformer = TemporianTransformer(function=function)
+        X_transformed = transformer.fit_transform(X=X)
+        pd.testing.assert_frame_equal(X_transformed, X + 1)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_hier():
+    """Tests basic function works on Hierarchical."""
+
+    def function(evset):
+        return evset + 1
+
+    examples = get_examples("pd_multiindex_hier", as_scitype="Hierarchical").values()
+    assert len(examples) > 0
+
+    for X in examples:
+        transformer = TemporianTransformer(function=function)
+        X_transformed = transformer.fit_transform(X=X)
+        pd.testing.assert_frame_equal(X_transformed, X + 1)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_dtypes():
+    """Tests basic function works on all dtypes."""
+
+    def function(evset):
+        return evset + 1
+
+    X = pd.DataFrame(
+        {
+            str(dtype): np.zeros(10).astype(dtype)
+            for dtype in [
+                np.int32,
+                np.int64,
+                np.float32,
+                np.float64,
+            ]
+        }
+    )
+    transformer = TemporianTransformer(function=function)
+    X_transformed = transformer.fit_transform(X=X)
+    pd.testing.assert_frame_equal(X_transformed, X + 1)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_compiled():
+    """Tests compiling the function."""
+    import temporian as tp
+
+    def function(evset):
+        return evset + 1
+
+    X = get_examples("pd.Series", as_scitype="Series")[0]
+
+    true_compile = tp.compile
+
+    with patch.object(tp, "compile") as compile_patch:
+        compile_patch.side_effect = true_compile
+        transformer = TemporianTransformer(function=function, compile=True)
+        X_transformed = transformer.fit_transform(X=X)
+        pd.testing.assert_series_equal(X_transformed, X + 1)
+        compile_patch.assert_called_once_with(function)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_compile_already_compiled():
+    """Tests compiling doesn't fail if the function was compiled already."""
+    import temporian as tp
+
+    @tp.compile
+    def function(evset):
+        return evset + 1
+
+    X = get_examples("pd.Series", as_scitype="Series")[0]
+
+    true_compile = tp.compile
+
+    with patch.object(tp, "compile") as compile_patch:
+        compile_patch.side_effect = true_compile
+        transformer = TemporianTransformer(function, compile=True)
+        X_transformed = transformer.fit_transform(X=X)
+        pd.testing.assert_series_equal(X_transformed, X + 1)
+        compile_patch.assert_called_once_with(function)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_multiple_output():
+    """Tests errors when functions return incorrect types."""
+
+    def function(evset):
+        split = datetime(1950, 7, 16)
+        return evset.before(split), evset.after(split)
+
+    X = load_solar()
+
+    transformer = TemporianTransformer(function=function)
+    with pytest.raises(
+        TypeError, match="Expected return type to be an EventSet but received"
+    ):
+        _ = transformer.fit_transform(X=X)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_multiple_input():
+    """Tests errors on incorrectly defined functions."""
+
+    def function(evset, incorrect_param):
+        return evset + 1
+
+    X = load_solar()
+
+    transformer = TemporianTransformer(function=function)
+    with pytest.raises(TypeError, match="missing 1 required positional"):
+        _ = transformer.fit_transform(X=X)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_change_sampling():
+    """Tests error when changing the sampling."""
+    import temporian as tp
+
+    # in this dataset each row is a period of 1/2 hour
+    # lagging for one hour would remove the first two rows thus changing the sampling
+    X = load_solar()
+
+    def function(evset):
+        return evset.lag(tp.duration.hours(1))
+
+    transformer = TemporianTransformer(function=function, compile=True)
+    with pytest.raises(
+        ValueError,
+        match="The resulting EventSet must have the same sampling as the input",
+    ):
+        _ = transformer.fit_transform(X=X)
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(TemporianTransformer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_complex_function():
+    import temporian as tp
+
+    # in this dataset each row is a period of 1/2 hour
+
+    def function(evset):
+        return evset.simple_moving_average(tp.duration.days(1)).resample(evset)
+
+    X = load_solar()
+
+    transformer = TemporianTransformer(function=function, compile=True)
+    result = transformer.fit_transform(X=X)
+    assert result.iloc[0] == X.iloc[0]
+    assert np.allclose(result.iloc[-1], X.iloc[-48:].mean())
diff --git a/sktime/transformations/series/tests/test_window_summarizer.py b/sktime/transformations/series/tests/test_window_summarizer.py
index 0d0306798..7cb16aadf 100644
--- a/sktime/transformations/series/tests/test_window_summarizer.py
+++ b/sktime/transformations/series/tests/test_window_summarizer.py
@@ -76,6 +76,13 @@ kwargs_custom = {
         count_gt100: [[3, 2]],
     }
 }
+
+kwargs_negative_lags = {
+    "lag_feature": {
+        "mean": [[-1, 1], [-1, 2]],
+    }
+}
+
 # Generate named and unnamed y
 y_train.name = None
 y_train_named = y_train.copy()
@@ -94,6 +101,20 @@ Xtmvar_none = ["GNPDEFL_lag_3", "GNPDEFL_lag_6", "GNP", "UNEMP", "ARMED", "POP"]
 @pytest.mark.parametrize(
     "kwargs, column_names, y, target_cols, truncate",
     [
+        (
+            kwargs_negative_lags,
+            ["a_mean_-1_1", "a_mean_-1_2"],
+            y_pd,
+            None,
+            None,
+        ),
+        (
+            kwargs_negative_lags,
+            ["y_mean_-1_1", "y_mean_-1_2"],
+            y_hierarchical,
+            None,
+            None,
+        ),
         (
             kwargs,
             ["y_lag_1", "y_mean_1_3", "y_mean_1_12", "y_std_1_4"],
diff --git a/sktime/utils/tests/test_datetime.py b/sktime/utils/tests/test_datetime.py
index be7b95155..c83cd4ef8 100755
--- a/sktime/utils/tests/test_datetime.py
+++ b/sktime/utils/tests/test_datetime.py
@@ -82,7 +82,7 @@ def test_infer_freq() -> None:
 
     index = pd.date_range(start="2021-01-01", periods=1, freq="M")
     y = pd.Series(index=index, dtype=int)
-    assert infer_freq(y) == "M"
+    assert infer_freq(y) in ["M", "ME"]
 
     y = pd.DataFrame({"a": 1}, index=pd.date_range(start="2021-01-01", periods=1))
     assert infer_freq(y) == "D"
@@ -90,39 +90,11 @@ def test_infer_freq() -> None:
     y = pd.DataFrame(
         {"a": 1}, index=pd.date_range(start="2021-01-01", periods=1, freq="M")
     )
-    assert infer_freq(y) == "M"
+    assert infer_freq(y) in ["M", "ME"]
 
     y = _bottom_hier_datagen(no_levels=2)
     y = VectorizedDF(X=y, iterate_as="Series", is_scitype="Hierarchical")
-    assert infer_freq(y) == "M"
-
-
-def test_set_freq() -> None:
-    """Test frequency inference."""
-    assert infer_freq(None) is None
-
-    y = pd.Series(dtype=int)
-    assert infer_freq(y) is None
-
-    index = pd.date_range(start="2021-01-01", periods=1)
-    y = pd.Series(index=index, dtype=int)
-    assert infer_freq(y) == "D"
-
-    index = pd.date_range(start="2021-01-01", periods=1, freq="M")
-    y = pd.Series(index=index, dtype=int)
-    assert infer_freq(y) == "M"
-
-    y = pd.DataFrame({"a": 1}, index=pd.date_range(start="2021-01-01", periods=1))
-    assert infer_freq(y) == "D"
-
-    y = pd.DataFrame(
-        {"a": 1}, index=pd.date_range(start="2021-01-01", periods=1, freq="M")
-    )
-    assert infer_freq(y) == "M"
-
-    y = _bottom_hier_datagen(no_levels=2)
-    y = VectorizedDF(X=y, iterate_as="Series", is_scitype="Hierarchical")
-    assert infer_freq(y) == "M"
+    assert infer_freq(y) in ["M", "ME"]
 
 
 def test_set_freq_hier():