Repository: sktime/sktime
Pull request #7515 (2024-12-11 22:41:04)

[ENH] base design for detection metrics
This PR introduces a base design for detection metrics.

The design is very bare-bones, addressing only the simple series case:

* `evaluate` and `_evaluate` with args `y_true`, `y_pred`, and `X`.
    * One should note that `X` may be required, as it contains the `loc` information and the values that may be used in some metrics.
    * Similarly, `y_true` might *not* be required, in an unsupervised case. Only `y_pred` is always required.
    * Unfortunately, `y_true` is the first arg as we need to be consistent with `sklearn`, which causes all three args to become optional.
* `__call__` dispatches to `evaluate`
* no reserved arguments
* important tags are `scitype:y` - for points or segments? `requires_X`, whether `X` (the labelled series) is required; `lower_is_better`

The module currently contains:

* a showcase `DirectedChamfer` metric.
* a showcase `DirectedHausdorff` metric. As point detection returns are sorted, an O(n) algorithm is available which is faster than the one is `scipy` (that does not make sorted assumption)
* a showcase `DetectionCount` metric that is unsupervised
* a test suite `TestAllDetectionMetrics`, currently covering `evaluate` expected signature
* simple tests for individual metrics

gavinkatz001: Also added rand index to this.

Patch:
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 5d0c934c5..69fedd936 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-322-orange.svg)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-324-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!
@@ -174,6 +174,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
     </tr>
     <tr>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/javiber"><img src="https://avatars.githubusercontent.com/u/3588715?v=4?s=100" width="100px;" alt="Javier Berneche"/><br /><sub><b>Javier Berneche</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=javiber" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=javiber" title="Documentation">📖</a></td>
+      <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/jgyasu/"><img src="https://avatars.githubusercontent.com/u/94278611?s=400&u=19941ae4723ef841b3a3c7df996214efadc98c45&v=4?s=100" width="100px;" alt="Jigyasu"/><br /><sub><b>Jigyasu</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jgyasu" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Z-Fran"><img src="https://avatars.githubusercontent.com/u/49083766?v=4?s=100" width="100px;" alt="Jindong Zhang"/><br /><sub><b>Jindong Zhang</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Z-Fran" title="Code">💻</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/tajir0"><img src="https://avatars.githubusercontent.com/u/36022362?s=100" width="100px;" alt="Jinrong Tang"/><br /><sub><b>Jinrong Tang</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=tajir0" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=tajir0" title="Tests">⚠️</a></td>
       <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>
@@ -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/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>
       <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>
     </tr>
     <tr>
+      <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/helloplayer1"><img src="https://avatars.githubusercontent.com/u/32032467?v=4?s=100" width="100px;" alt="Julian Haderlein"/><br /><sub><b>Julian Haderlein</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=helloplayer1" title="Documentation">📖</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>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/julianarn/"><img src="https://avatars.githubusercontent.com/u/19613567?v=4?s=100" width="100px;" alt="Juliana"/><br /><sub><b>Juliana</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=julramos" title="Code">💻</a></td>
@@ -192,9 +193,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://github.com/kirilral"><img src="https://avatars.githubusercontent.com/u/34281484?v=4?s=100" width="100px;" alt="Kiril Ralinovski"/><br /><sub><b>Kiril Ralinovski</b></sub></a><br /><a href="#ideas-kirilral" title="Ideas, Planning, & Feedback">🤔</a> <a href="#mentoring-kirilral" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-kirilral" title="Project Management">📆</a> <a href="#talk-kirilral" title="Talks">📢</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>
@@ -203,9 +204,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/koralturkk"><img src="https://avatars2.githubusercontent.com/u/18037789?s=460&v=4?s=100" width="100px;" alt="Kutay Koralturk"/><br /><sub><b>Kutay Koralturk</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=koralturkk" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Akoralturkk" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ltsaprounis"><img src="https://avatars.githubusercontent.com/u/64217214?v=4?s=100" width="100px;" alt="Leonidas Tsaprounis"/><br /><sub><b>Leonidas Tsaprounis</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ltsaprounis" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Altsaprounis" title="Bug reports">🐛</a> <a href="#mentoring-ltsaprounis" title="Mentoring">🧑‍🏫</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Altsaprounis" title="Reviewed Pull Requests">👀</a></td>
       <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>
     </tr>
     <tr>
+      <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>
       <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>
@@ -214,9 +215,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/luiszugasti"><img src="https://avatars.githubusercontent.com/u/11198457?s=460&u=0645b72683e491824aca16db9702f1d3eb990389&v=4?s=100" width="100px;" alt="Luis Zugasti"/><br /><sub><b>Luis Zugasti</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=luiszugasti" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/lmmentel"><img src="https://avatars.githubusercontent.com/u/8989838?v=4?s=100" width="100px;" alt="Lukasz Mentel"/><br /><sub><b>Lukasz Mentel</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=lmmentel" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=lmmentel" title="Documentation">📖</a> <a href="#infra-lmmentel" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/sktime/sktime/commits?author=lmmentel" title="Tests">⚠️</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Almmentel" title="Bug reports">🐛</a> <a href="#maintenance-lmmentel" title="Maintenance">🚧</a> <a href="#mentoring-lmmentel" title="Mentoring">🧑‍🏫</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/madhuri-agarwal-166080209/"><img src="https://avatars.githubusercontent.com/u/108001973?v=4&size=64?s=100" width="100px;" alt="Madhuri"/><br /><sub><b>Madhuri</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=madhuri723" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/manuel-munoz-aguirre"><img src="https://avatars.githubusercontent.com/u/5576458?v=4?s=100" width="100px;" alt="Manuel Muñoz Aguirre"/><br /><sub><b>Manuel Muñoz Aguirre</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=manuel-munoz-aguirre" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/manuel-munoz-aguirre"><img src="https://avatars.githubusercontent.com/u/5576458?v=4?s=100" width="100px;" alt="Manuel Muñoz Aguirre"/><br /><sub><b>Manuel Muñoz Aguirre</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=manuel-munoz-aguirre" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/manolotis"><img src="https://avatars.githubusercontent.com/manolotis?s=100" width="100px;" alt="Manuel Muñoz Sánchez"/><br /><sub><b>Manuel Muñoz Sánchez</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=manolotis" title="Documentation">📖</a></td>
       <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="#design-marrov" title="Design">🎨</a> <a href="https://github.com/sktime/sktime/commits?author=marrov" title="Documentation">📖</a> <a href="#ideas-marrov" title="Ideas, Planning, & Feedback">🤔</a> <a href="#mentoring-marrov" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-marrov" title="Project Management">📆</a> <a href="#talk-marrov" title="Talks">📢</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>
@@ -225,9 +226,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/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>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/markussagen"><img src="https://avatars.githubusercontent.com/u/20767068?v=4?s=100" width="100px;" alt="Markus Sagen"/><br /><sub><b>Markus Sagen</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=markussagen" title="Code">💻</a> <a href="#example-markussagen" title="Examples">💡</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/markussagen"><img src="https://avatars.githubusercontent.com/u/20767068?v=4?s=100" width="100px;" alt="Markus Sagen"/><br /><sub><b>Markus Sagen</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=markussagen" title="Code">💻</a> <a href="#example-markussagen" title="Examples">💡</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://www.linkedin.com/in/martin-walter-1a33b3114/"><img src="https://avatars0.githubusercontent.com/u/29627036?v=4?s=100" width="100px;" alt="Martin Walter"/><br /><sub><b>Martin Walter</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=aiwalter" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Aaiwalter" title="Bug reports">🐛</a> <a href="#projectManagement-aiwalter" title="Project Management">📆</a> <a href="#fundingFinding-aiwalter" title="Funding Finding">🔍</a> <a href="#mentoring-aiwalter" title="Mentoring">🧑‍🏫</a> <a href="#ideas-aiwalter" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-aiwalter" title="Design">🎨</a> <a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Aaiwalter" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/sktime/sktime/commits?author=aiwalter" title="Documentation">📖</a> <a href="#talk-aiwalter" title="Talks">📢</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/martinagvilas"><img src="https://avatars2.githubusercontent.com/u/37339384?v=4?s=100" width="100px;" alt="Martina G. Vilas"/><br /><sub><b>Martina G. Vilas</b></sub></a><br /><a href="https://github.com/sktime/sktime/pulls?q=is%3Apr+reviewed-by%3Amartinagvilas" title="Reviewed Pull Requests">👀</a> <a href="#ideas-martinagvilas" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/mateuszkasprowicz"><img src="https://avatars.githubusercontent.com/mateuszkasprowicz?s=100" width="100px;" alt="Mateusz Kasprowicz"/><br /><sub><b>Mateusz Kasprowicz</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mateuszkasprowicz" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=mateuszkasprowicz" title="Tests">⚠️</a></td>
@@ -236,9 +237,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/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>
       <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/issues?q=author%3Ameraldoantonio" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <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/issues?q=author%3Ameraldoantonio" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=meraldoantonio" title="Tests">⚠️</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>
@@ -247,9 +248,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/mjste"><img src="https://avatars.githubusercontent.com/mjste?s=100" width="100px;" alt="Michał Stefanik"/><br /><sub><b>Michał Stefanik</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mjste" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/mk406"><img src="https://avatars.githubusercontent.com/u/78024411?v=4?s=100" width="100px;" alt="Miguel Krause"/><br /><sub><b>Miguel Krause</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=mk406" title="Code">💻</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="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=MBristle" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=MBristle" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <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="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=MBristle" title="Documentation">📖</a> <a href="https://github.com/sktime/sktime/commits?author=MBristle" title="Tests">⚠️</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>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/skinan"><img src="https://avatars.githubusercontent.com/skinan?s=100" width="100px;" alt="Muhammad Sakib Khan Inan"/><br /><sub><b>Muhammad Sakib Khan Inan</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=skinan" title="Documentation">📖</a></td>
@@ -258,9 +259,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/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>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/Dehelaan"><img src="https://avatars.githubusercontent.com/u/120308161?s=400&v=4?s=100" width="100px;" alt="Nihal Chaudhary"/><br /><sub><b>Nihal Chaudhary</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Dehelaan" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ngupta23"><img src="https://avatars0.githubusercontent.com/u/33585645?v=4?s=100" width="100px;" alt="Nikhil Gupta"/><br /><sub><b>Nikhil Gupta</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ngupta23" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Angupta23" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=ngupta23" title="Documentation">📖</a></td>
-      <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>
     </tr>
     <tr>
+      <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>
@@ -269,9 +270,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/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>
       <td align="center" valign="top" width="11.11%"><a href="http://www2.informatik.hu-berlin.de/~schaefpa/"><img src="https://avatars0.githubusercontent.com/u/7783034?v=4?s=100" width="100px;" alt="Patrick Schäfer"/><br /><sub><b>Patrick Schäfer</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=patrickzib" title="Code">💻</a> <a href="#tutorial-patrickzib" title="Tutorials">✅</a></td>
-      <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>
     </tr>
     <tr>
+      <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>
@@ -280,9 +281,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/Prtm2110"><img src="https://avatars.githubusercontent.com/u/139000226?s=400&u=a2ef29514ad2780d1263ba9d724898132c8d18fb&v=4?s=100" width="100px;" alt="Pratham Hole"/><br /><sub><b>Pratham Hole</b></sub></a><br /><a href="#maintenance-Prtm2110" title="Maintenance">🚧</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>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/rakshitha123"><img src="https://avatars.githubusercontent.com/u/7654679?v=4?s=100" width="100px;" alt="Rakshitha Godahewa"/><br /><sub><b>Rakshitha Godahewa</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=rakshitha123" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=rakshitha123" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/rakshitha123"><img src="https://avatars.githubusercontent.com/u/7654679?v=4?s=100" width="100px;" alt="Rakshitha Godahewa"/><br /><sub><b>Rakshitha Godahewa</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=rakshitha123" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=rakshitha123" title="Documentation">📖</a></td>
       <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> <a href="https://github.com/sktime/sktime/issues?q=author%3ARam0nB" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=Ram0nB" title="Tests">⚠️</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>
@@ -291,9 +292,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/VectorNd"><img src="https://avatars.githubusercontent.com/u/111004091?v=4?s=100" width="100px;" alt="Rishabh Kamboj"/><br /><sub><b>Rishabh Kamboj</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=VectorNd" 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>
     </tr>
     <tr>
+      <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://linkedin.com/in/robert-kuebler"><img src="https://avatars.githubusercontent.com/u/932327?v=4?s=100" width="100px;" alt="Robert Kübler"/><br /><sub><b>Robert Kübler</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AGarve" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=Garve" title="Code">💻</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>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/ronnie-llamado"><img src="https://avatars.githubusercontent.com/ronnie-llamado?s=100" width="100px;" alt="Ronnie Llamado"/><br /><sub><b>Ronnie Llamado</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=ronnie-llamado" title="Documentation">📖</a></td>
@@ -302,9 +303,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/SaiRevanth25"><img src="https://avatars.githubusercontent.com/SaiRevanth25?s=100" width="100px;" alt="Sai Revanth Gowravajhala"/><br /><sub><b>Sai Revanth Gowravajhala</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SaiRevanth25" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3ASaiRevanth25" title="Bug reports">🐛</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/SamruddhiNavale"><img src="https://avatars.githubusercontent.com/u/86359115?v=4?s=100" width="100px;" alt="Samruddhi Navale"/><br /><sub><b>Samruddhi Navale</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SamruddhiNavale" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/SamruddhiNavale"><img src="https://avatars.githubusercontent.com/u/86359115?v=4?s=100" width="100px;" alt="Samruddhi Navale"/><br /><sub><b>Samruddhi Navale</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=SamruddhiNavale" title="Documentation">📖</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>
@@ -313,9 +314,9 @@ 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/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/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>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/bastisar"><img src="https://avatars.githubusercontent.com/u/142449680?v=4?s=100" width="100px;" alt="Sebastian Hien"/><br /><sub><b>Sebastian Hien</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=bastisar" title="Code">💻</a> <a href="https://github.com/sktime/sktime/issues?q=author%3Abastisar" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=bastisar" title="Tests">⚠️</a></td>
       <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/ShivamJ07"><img src="https://avatars.githubusercontent.com/ShivamJ07?s=100" width="100px;" alt="Shivam Singal"/><br /><sub><b>Shivam Singal</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AShivamJ07" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=ShivamJ07" title="Code">💻</a></td>
@@ -324,9 +325,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/ShreeshaM07"><img src="https://avatars.githubusercontent.com/u/120820143?s=400&v=4?s=100" width="100px;" alt="Shreesha M"/><br /><sub><b>Shreesha M</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3AShreeshaM07" title="Bug reports">🐛</a> <a href="https://github.com/sktime/sktime/commits?author=ShreeshaM07" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=ShreeshaM07" title="Tests">⚠️</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>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/slavik57"><img src="https://avatars.githubusercontent.com/u/6184997?v=4?s=100" width="100px;" alt="Slava Shpitalny"/><br /><sub><b>Slava Shpitalny</b></sub></a><br /><a href="#maintenance-slavik57" title="Maintenance">🚧</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/Sohaib-Ahmed21"><img src="https://avatars.githubusercontent.com/Sohaib-Ahmed21?s=100" width="100px;" alt="Sohaib Ahmed"/><br /><sub><b>Sohaib Ahmed</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Sohaib-Ahmed21" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/Sohaib-Ahmed21"><img src="https://avatars.githubusercontent.com/Sohaib-Ahmed21?s=100" width="100px;" alt="Sohaib Ahmed"/><br /><sub><b>Sohaib Ahmed</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=Sohaib-Ahmed21" title="Code">💻</a></td>
       <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>
@@ -335,9 +336,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/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>
       <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/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>
       <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>
@@ -346,9 +347,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/onyekaugochukwu"><img src="https://avatars.githubusercontent.com/u/92909501?v=4?s=100" width="100px;" alt="Ugochukwu Onyeka"/><br /><sub><b>Ugochukwu Onyeka</b></sub></a><br /><a href="#business-onyekaugochukwu" title="Business development">💼</a> <a href="https://github.com/sktime/sktime/commits?author=onyekaugochukwu" title="Documentation">📖</a> <a href="#ideas-onyekaugochukwu" title="Ideas, Planning, & Feedback">🤔</a> <a href="#mentoring-onyekaugochukwu" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-onyekaugochukwu" title="Project Management">📆</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>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/vagechirkov"><img src="https://avatars.githubusercontent.com/vagechirkov?s=100" width="100px;" alt="Valerii Chirkov"/><br /><sub><b>Valerii Chirkov</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vagechirkov" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=vagechirkov" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="11.11%"><a href="https://github.com/vandit98"><img src="https://avatars.githubusercontent.com/u/91458535?v=4?s=100" width="100px;" alt="Vandit Tyagi"/><br /><sub><b>Vandit Tyagi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vandit98" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/vandit98"><img src="https://avatars.githubusercontent.com/u/91458535?v=4?s=100" width="100px;" alt="Vandit Tyagi"/><br /><sub><b>Vandit Tyagi</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vandit98" title="Documentation">📖</a></td>
       <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/vedantag17"><img src="https://avatars.githubusercontent.com/u/118207011?v=4?s=100" width="100px;" alt="Vedant Agrawal"/><br /><sub><b>Vedant Agrawal</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=vedantag17" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="11.11%"><a href="https://github.com/jgyfutub"><img src="https://avatars.githubusercontent.com/u/97391064?s=400&v=4?s=100" width="100px;" alt="Vedant Pandey"/><br /><sub><b>Vedant Pandey</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=jgyfutub" title="Code">💻</a></td>
@@ -357,9 +358,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/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://github.com/fr1ll"><img src="https://avatars.githubusercontent.com/u/29168593?v=4?s=100" width="100px;" alt="Will Sanger"/><br /><sub><b>Will Sanger</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=fr1ll" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=fr1ll" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/fr1ll"><img src="https://avatars.githubusercontent.com/u/29168593?v=4?s=100" width="100px;" alt="Will Sanger"/><br /><sub><b>Will Sanger</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=fr1ll" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=fr1ll" 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/wirrywoo"><img src="https://avatars.githubusercontent.com/u/148647848?v=4?s=100?s=100" width="100px;" alt="Wilson Cheung"/><br /><sub><b>Wilson Cheung</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=wirrywoo" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=wirrywoo" title="Documentation">📖</a></td>
@@ -368,20 +369,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/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>
       <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/YashKhare20"><img src="https://avatars.githubusercontent.com/u/92680366?s=400?s=100" width="100px;" alt="Yash Khare"/><br /><sub><b>Yash Khare</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=YashKhare20" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=YashKhare20" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="11.11%"><a href="https://github.com/YashKhare20"><img src="https://avatars.githubusercontent.com/u/92680366?s=400?s=100" width="100px;" alt="Yash Khare"/><br /><sub><b>Yash Khare</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=YashKhare20" title="Code">💻</a> <a href="https://github.com/sktime/sktime/commits?author=YashKhare20" title="Documentation">📖</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>
       <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/y-mx"><img src="https://avatars.githubusercontent.com/y-mx?s=100" width="100px;" alt="Yimeng Xie"/><br /><sub><b>Yimeng Xie</b></sub></a><br /><a href="https://github.com/sktime/sktime/commits?author=y-mx" title="Code">💻</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>
-      <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>
     </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>
       <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>
@@ -389,10 +391,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/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/morestart"><img src="https://avatars.githubusercontent.com/u/35556811?s=100" width="100px;" alt="ctl"/><br /><sub><b>ctl</b></sub></a><br /><a href="https://github.com/sktime/sktime/issues?q=author%3Amorestart" title="Bug reports">🐛</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>
-      <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>
     </tr>
     <tr>
+      <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>
+      <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>
       <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>
@@ -400,10 +402,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/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>
-      <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>
     </tr>
     <tr>
+      <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>
+      <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>
       <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>
diff --git a/sktime/performance_metrics/detection/__init__.py b/sktime/performance_metrics/detection/__init__.py
new file mode 100644
index 000000000..b8e80b14c
--- /dev/null
+++ b/sktime/performance_metrics/detection/__init__.py
@@ -0,0 +1,7 @@
+"""Metrics for detection tasks."""
+
+from sktime.performance_metrics.detection._chamfer import DirectedChamfer
+from sktime.performance_metrics.detection._count import DetectionCount
+from sktime.performance_metrics.detection._hausdorff import DirectedHausdorff
+
+__all__ = ["DirectedChamfer", "DirectedHausdorff", "DetectionCount"]
diff --git a/sktime/performance_metrics/detection/_base.py b/sktime/performance_metrics/detection/_base.py
new file mode 100644
index 000000000..b802856bd
--- /dev/null
+++ b/sktime/performance_metrics/detection/_base.py
@@ -0,0 +1,147 @@
+"""Base class for detection metrics."""
+# copyright: sktime developers, BSD-3-Clause License (see LICENSE file)
+
+from sktime.datatypes import check_is_scitype, convert_to
+from sktime.performance_metrics.base import BaseMetric
+
+
+class BaseDetectionMetric(BaseMetric):
+    """Base class for defining detection error metrics in sktime."""
+
+    _tags = {
+        "object_type": ["metric_detection", "metric"],
+        "scitype:y": "points",  # or segments
+        "requires_X": False,
+        "requires_y_true": True,  # if False, is unsupervised metric
+        "lower_is_better": True,
+    }
+
+    def __call__(self, y_true=None, y_pred=None, X=None):
+        """Evaluate the desired metric on given inputs.
+
+        Parameters
+        ----------
+        y_true : time series in ``sktime`` compatible data container format.
+            Ground truth (correct) event locations, in ``X``.
+            Should be ``pd.DataFrame``, ``pd.Series``, or ``np.ndarray`` (1D or 2D),
+            of ``Series`` scitype = individual time series.
+
+            For further details on data format, see glossary on :term:`mtype`.
+
+        y_pred : time series in ``sktime`` compatible data container format
+            Detected events to evaluate against ground truth.
+            Must be of same format as ``y_true``, same indices and columns if indexed.
+            Not required for unsupervised metrics.
+
+        X : optional, pd.DataFrame, pd.Series or np.ndarray
+            Time series that is being labelled.
+            If not provided, assumes ``RangeIndex`` for ``X``, and that
+            values in ``X`` do not matter.
+
+        Returns
+        -------
+        loss : float
+            Calculated metric.
+        """
+        return self.evaluate(y_true, y_pred, X)
+
+    def evaluate(self, y_true=None, y_pred=None, X=None):
+        """Evaluate the desired metric on given inputs.
+
+        Parameters
+        ----------
+        y_true : time series in ``sktime`` compatible data container format.
+            Ground truth (correct) event locations, in ``X``.
+
+            Not required if unsupervised metric,
+            that is, if tag ``requires_y_true`` is False.
+
+            Should be ``pd.DataFrame``, ``pd.Series``, or ``np.ndarray`` (1D or 2D),
+            of ``Series`` scitype = individual time series.
+
+            For further details on data format, see glossary on :term:`mtype`.
+
+        y_pred : time series in ``sktime`` compatible data container format
+            Detected events to evaluate against ground truth.
+            Must be of same format as ``y_true``, same indices and columns if indexed.
+
+        X : optional, pd.DataFrame, pd.Series or np.ndarray
+            Time series that is being labelled.
+            If not provided, assumes ``RangeIndex`` for ``X``, and that
+            values in ``X`` do not matter.
+
+            Required if tag ``requires_X`` is True.
+
+        Returns
+        -------
+        loss : float
+            Calculated metric.
+        """
+        # Input checks and conversions
+        y_true_inner, y_pred_inner, X_inner = self._check_ys(y_true, y_pred, X)
+
+        # pass to inner function
+        out = self._evaluate(y_true=y_true_inner, y_pred=y_pred_inner, X=X_inner)
+
+        if not isinstance(out, float):
+            out = float(out)
+        return out
+
+    def _evaluate(self, y_true, y_pred, X):
+        """Evaluate the desired metric on given inputs.
+
+        private _evaluate containing core logic, called from evaluate
+
+        Parameters
+        ----------
+        y_true : time series in ``sktime`` compatible data container format.
+            Ground truth (correct) event locations, in ``X``.
+            Should be ``pd.DataFrame``, ``pd.Series``, or ``np.ndarray`` (1D or 2D),
+            of ``Series`` scitype = individual time series.
+
+            For further details on data format, see glossary on :term:`mtype`.
+
+        y_pred : time series in ``sktime`` compatible data container format
+            Detected events to evaluate against ground truth.
+            Must be of same format as ``y_true``, same indices and columns if indexed.
+
+        X : optional, pd.DataFrame, pd.Series or np.ndarray
+            Time series that is being labelled.
+            If not provided, assumes ``RangeIndex`` for ``X``, and that
+            values in ``X`` do not matter.
+
+        Returns
+        -------
+        loss : float
+            Calculated metric.
+        """
+        raise NotImplementedError("Abstract method.")
+
+    def _check_ys(self, y_true, y_pred, X):
+        SCITYPES = ["Series"]
+        INNER_MTYPES = ["pd.DataFrame"]
+
+        def _coerce_to_df(y, var_name="y", allow_none=False):
+            if allow_none and y is None:
+                return None
+            valid, msg, _ = check_is_scitype(
+                y, scitype=SCITYPES, return_metadata=[], var_name=var_name
+            )
+            if not valid:
+                raise TypeError(msg)
+            y_inner = convert_to(y, to_type=INNER_MTYPES)
+            return y_inner
+
+        allow_none_y_true = not self.get_tag("requires_y_true")
+        allow_none_X = not self.get_tag("requires_X")
+
+        # catch the case where y_pred is passed as single positional arg
+        if allow_none_y_true and y_pred is None and y_true is not None:
+            y_pred = y_true
+            y_true = None
+
+        y_true = _coerce_to_df(y_true, var_name="y_true", allow_none=allow_none_y_true)
+        y_pred = _coerce_to_df(y_pred, var_name="y_pred")
+        X = _coerce_to_df(X, var_name="X", allow_none=allow_none_X)
+
+        return y_true, y_pred, X
diff --git a/sktime/performance_metrics/detection/_chamfer.py b/sktime/performance_metrics/detection/_chamfer.py
new file mode 100644
index 000000000..fbca0c849
--- /dev/null
+++ b/sktime/performance_metrics/detection/_chamfer.py
@@ -0,0 +1,121 @@
+"""Directed Chamfer distance between two sets of points."""
+
+import numpy as np
+import pandas as pd
+
+from sktime.performance_metrics.detection._base import BaseDetectionMetric
+from sktime.performance_metrics.detection.utils import _find_closest_elements
+
+
+class DirectedChamfer(BaseDetectionMetric):
+    r"""Directed Chamfer distance between event points.
+
+    For detected time points :math:`A = (a_1, a_2, \ldots, a_n)` and true time points
+    :math:`B = (b_1, b_2, \ldots, b_m)`,
+    the directed (unnormalized) Chamfer distance is defined as:
+
+    .. math::
+
+        d(A, B) = \sum_{i=1}^{n} \left| a_i - b'_i \right|
+
+    where :math:`b'_i` is the true event closest to :math:`a_i`,
+    that is, :math:`b'_i = \arg \min_{b\in B} |a_i - b|`.
+
+    If ``X`` is provided, the time points are taken as the location indices in ``X``.
+    Otherwise, it is assumed that ``X`` has a ``RangeIndex``.
+
+    Parameters
+    ----------
+    normalize : bool, default=False
+        If True, the Chamfer distance is normalized by the number of detected events,
+        i.e., divided by :math:`n`.
+        If unnormalized, making too many detections will be penalized, wherease
+        the normalized distance penalizes only the average distance to the
+        closest true events, regardless of the number of detections.
+    """
+
+    _tags = {
+        "scitype:y": "points",  # or segments
+        "requires_X": False,
+        "lower_is_better": True,
+    }
+
+    def __init__(self, normalize=False):
+        self.normalize = normalize
+
+        super().__init__()
+
+    def _evaluate(self, y_true, y_pred, X=None):
+        """Evaluate the desired metric on given inputs.
+
+        private _evaluate containing core logic, called from evaluate
+
+        Parameters
+        ----------
+        y_true : time series in ``sktime`` compatible data container format.
+            Ground truth (correct) event locations, in ``X``.
+            Should be ``pd.DataFrame``, ``pd.Series``, or ``np.ndarray`` (1D or 2D),
+            of ``Series`` scitype = individual time series.
+
+            For further details on data format, see glossary on :term:`mtype`.
+
+        y_pred : time series in ``sktime`` compatible data container format
+            Detected events to evaluate against ground truth.
+            Must be of same format as ``y_true``, same indices and columns if indexed.
+
+        X : optional, pd.DataFrame, pd.Series or np.ndarray
+            Time series that is being labelled.
+            If not provided, assumes ``RangeIndex`` for ``X``, and that
+            values in ``X`` do not matter.
+
+        Returns
+        -------
+        loss : float
+            Calculated metric.
+        """
+        y_true_ilocs = y_true.ilocs
+        y_pred_ilocs = y_pred.ilocs
+
+        if X is not None and not isinstance(X.index, pd.RangeIndex):
+            y_true_locs = X.index[y_true_ilocs]
+            y_pred_locs = X.index[y_pred_ilocs]
+        else:
+            y_true_locs = y_true_ilocs
+            y_pred_locs = y_pred_ilocs
+
+        y_true_locs = y_true_locs.to_numpy()
+        y_pred_locs = y_pred_locs.to_numpy()
+
+        y_true_closest = _find_closest_elements(y_pred_locs, y_true_locs)
+        y_true_closest = np.array(y_true_closest)
+
+        distance = np.sum(np.abs(y_true_closest - y_pred_locs))
+
+        if self.normalize:
+            distance /= len(y_pred_locs)
+
+        return distance
+
+    @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``.
+        """
+        param1 = {}
+        param2 = {"normalize": True}
+
+        return [param1, param2]
diff --git a/sktime/performance_metrics/detection/_count.py b/sktime/performance_metrics/detection/_count.py
new file mode 100644
index 000000000..c29adf0e4
--- /dev/null
+++ b/sktime/performance_metrics/detection/_count.py
@@ -0,0 +1,101 @@
+"""Count of detection, possibly in excess or deviation of a target count."""
+
+from sktime.performance_metrics.detection._base import BaseDetectionMetric
+
+
+class DetectionCount(BaseDetectionMetric):
+    r"""Count of detection, possibly in excess or deviation of a target count.
+
+    Parameters
+    ----------
+    target : int, default=0
+        Target number of detections.
+        If 0, the count is the absolute number of detections.
+        If positive, the count reported is, by default, the absolute
+        difference between the number of detections and the target.
+        If the ``excess_only`` parameter is set to ``True``, the count
+        is the number of detections in excess of the target if larger,
+        otherwise zero.
+    excess_only : bool, default=False
+        If False, the count is the absolute difference between the ``target``
+        and the number of detections.
+        If True, the count is the number of detections in excess of the target
+        if larger, otherwise zero.
+    """
+
+    _tags = {
+        "scitype:y": "points",  # or segments
+        "requires_X": False,
+        "requires_y_true": False,  # this is an unsupervised metric
+        "lower_is_better": True,
+    }
+
+    def __init__(self, target=0, excess_only=False):
+        self.target = target
+        self.excess_only = excess_only
+
+        super().__init__()
+
+    def _evaluate(self, y_true, y_pred, X):
+        """Evaluate the desired metric on given inputs.
+
+        private _evaluate containing core logic, called from evaluate
+
+        Parameters
+        ----------
+        y_true : time series in ``sktime`` compatible data container format.
+            Ground truth (correct) event locations, in ``X``.
+            Should be ``pd.DataFrame``, ``pd.Series``, or ``np.ndarray`` (1D or 2D),
+            of ``Series`` scitype = individual time series.
+
+            For further details on data format, see glossary on :term:`mtype`.
+
+        y_pred : time series in ``sktime`` compatible data container format
+            Detected events to evaluate against ground truth.
+            Must be of same format as ``y_true``, same indices and columns if indexed.
+
+        X : optional, pd.DataFrame, pd.Series or np.ndarray
+            Time series that is being labelled.
+            If not provided, assumes ``RangeIndex`` for ``X``, and that
+            values in ``X`` do not matter.
+
+        Returns
+        -------
+        loss : float
+            Calculated metric.
+        """
+        num_detections = len(y_pred)
+
+        score = num_detections - self.target
+
+        if self.excess_only:
+            score = max(score, 0)
+
+        score = abs(score)
+
+        return score
+
+    @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``.
+        """
+        param0 = {}
+        param1 = {"target": 1, "excess_only": True}
+        param2 = {"target": 42}
+
+        return [param0, param1, param2]
diff --git a/sktime/performance_metrics/detection/_hausdorff.py b/sktime/performance_metrics/detection/_hausdorff.py
new file mode 100644
index 000000000..d27acedb9
--- /dev/null
+++ b/sktime/performance_metrics/detection/_hausdorff.py
@@ -0,0 +1,80 @@
+"""Directed Hausdorff distance between two sets of points."""
+
+import numpy as np
+import pandas as pd
+
+from sktime.performance_metrics.detection._base import BaseDetectionMetric
+from sktime.performance_metrics.detection.utils import _find_closest_elements
+
+
+class DirectedHausdorff(BaseDetectionMetric):
+    r"""Directed Hausdorff distance between event points.
+
+    For detected time points :math:`A = (a_1, a_2, \ldots, a_n)` and true time points
+    :math:`B = (b_1, b_2, \ldots, b_m)`,
+    the directed (unnormalized) Hausdorff distance is defined as:
+
+    .. math::
+
+        d(A, B) = \max_i \left| a_i - b'_i \right|
+
+    where :math:`b'_i` is the true event closest to :math:`a_i`,
+    that is, :math:`b'_i = \arg \min_{b\in B} |a_i - b|`.
+
+    If ``X`` is provided, the time points are taken as the location indices in ``X``.
+    Otherwise, it is assumed that ``X`` has a ``RangeIndex``.
+    """
+
+    _tags = {
+        "scitype:y": "points",  # or segments
+        "requires_X": False,
+        "lower_is_better": True,
+    }
+
+    def _evaluate(self, y_true, y_pred, X=None):
+        """Evaluate the desired metric on given inputs.
+
+        private _evaluate containing core logic, called from evaluate
+
+        Parameters
+        ----------
+        y_true : time series in ``sktime`` compatible data container format.
+            Ground truth (correct) event locations, in ``X``.
+            Should be ``pd.DataFrame``, ``pd.Series``, or ``np.ndarray`` (1D or 2D),
+            of ``Series`` scitype = individual time series.
+
+            For further details on data format, see glossary on :term:`mtype`.
+
+        y_pred : time series in ``sktime`` compatible data container format
+            Detected events to evaluate against ground truth.
+            Must be of same format as ``y_true``, same indices and columns if indexed.
+
+        X : optional, pd.DataFrame, pd.Series or np.ndarray
+            Time series that is being labelled.
+            If not provided, assumes ``RangeIndex`` for ``X``, and that
+            values in ``X`` do not matter.
+
+        Returns
+        -------
+        loss : float
+            Calculated metric.
+        """
+        y_true_ilocs = y_true.ilocs
+        y_pred_ilocs = y_pred.ilocs
+
+        if X is not None and not isinstance(X.index, pd.RangeIndex):
+            y_true_locs = X.index[y_true_ilocs]
+            y_pred_locs = X.index[y_pred_ilocs]
+        else:
+            y_true_locs = y_true_ilocs
+            y_pred_locs = y_pred_ilocs
+
+        y_true_locs = y_true_locs.to_numpy()
+        y_pred_locs = y_pred_locs.to_numpy()
+
+        y_true_closest = _find_closest_elements(y_pred_locs, y_true_locs)
+        y_true_closest = np.array(y_true_closest)
+
+        distance = np.max(np.abs(y_true_closest - y_pred_locs))
+
+        return distance
diff --git a/sktime/performance_metrics/detection/utils/__init__.py b/sktime/performance_metrics/detection/utils/__init__.py
new file mode 100644
index 000000000..a588073fb
--- /dev/null
+++ b/sktime/performance_metrics/detection/utils/__init__.py
@@ -0,0 +1,5 @@
+"""Utilities for detection metrics."""
+
+from sktime.performance_metrics.detection.utils._closest import _find_closest_elements
+
+__all__ = ["_find_closest_elements"]
diff --git a/sktime/performance_metrics/detection/utils/_closest.py b/sktime/performance_metrics/detection/utils/_closest.py
new file mode 100644
index 000000000..040f0ce30
--- /dev/null
+++ b/sktime/performance_metrics/detection/utils/_closest.py
@@ -0,0 +1,44 @@
+"""Utility to find all closest elements in sorted list b to sorted list a."""
+
+
+def _find_closest_elements(a, b):
+    """Find the closest element in b for each element in a.
+
+    Parameters
+    ----------
+    a : 1D array-like
+        An ordered (sorted) list of elements.
+    b : 1D array-like
+        Another ordered (sorted) list of elements.
+
+    Returns
+    -------
+    closest : list, same length as a
+        a list of closest elements in ``b`` for each element in ``a``.
+        In case of ties, the first closest element is chosen.
+
+    Examples
+    --------
+    >>> a = [1, 3, 5]
+    >>> b = [2, 3.1, 3.2, 4, 6]
+    >>> pointer = DirectedHausdorff()._find_closest_elements(a, b)
+    """
+    # Pointers for traversing A and B
+    i, j = 0, 0
+    n, m = len(a), len(b)
+
+    # List to store the result
+    result = []
+
+    while i < n:
+        # Move pointer j in b to get the closest value to a[i]
+        while j + 1 < m and abs(b[j + 1] - a[i]) < abs(b[j] - a[i]):
+            j += 1
+
+        # Append the closest value in b for a[i]
+        result.append(b[j])
+
+        # Move to the next element in a
+        i += 1
+
+    return result
diff --git a/sktime/registry/_base_classes.py b/sktime/registry/_base_classes.py
index 2e97cd56f..269dce5f4 100644
--- a/sktime/registry/_base_classes.py
+++ b/sktime/registry/_base_classes.py
@@ -264,6 +264,30 @@ class metric(_BaseScitypeOfObject):
         return BaseMetric
 
 
+class metric_detection(_BaseScitypeOfObject):
+    """Performance metric for time series detection tasks."""
+
+    _tags = {
+        "scitype_name": "metric_detection",
+        "short_descr": "performance metric for detectors",
+        "parent_scitype": "metric",
+    }
+
+    @classmethod
+    def get_base_class(cls):
+        from sktime.performance_metrics.detection._base import BaseDetectionMetric
+
+        return BaseDetectionMetric
+
+    @classmethod
+    def get_test_class(cls):
+        from sktime.performance_metrics.detection.tests.test_all_metrics_detection import (  # noqa E501
+            TestAllDetectionMetrics,  # noqa E501
+        )  # noqa E501
+
+        return TestAllDetectionMetrics
+
+
 class metric_forecasting(_BaseScitypeOfObject):
     """Performance metric for time series forecasting."""
 
diff --git a/sktime/registry/_tags.py b/sktime/registry/_tags.py
index ff8f152e9..11081854c 100644
--- a/sktime/registry/_tags.py
+++ b/sktime/registry/_tags.py
@@ -1932,6 +1932,12 @@ ESTIMATOR_TAG_REGISTER = [
         "bool",
         "does metric require a predictive benchmark?",
     ),
+    (
+        "requires_y_true",
+        "metric",
+        "bool",
+        "does metric require ground truth? If False, unsupervised metric",
+    ),
     (
         "scitype:y_pred",
         "metric",


Test patch:
diff --git a/sktime/performance_metrics/detection/tests/__init__.py b/sktime/performance_metrics/detection/tests/__init__.py
new file mode 100644
index 000000000..951487535
--- /dev/null
+++ b/sktime/performance_metrics/detection/tests/__init__.py
@@ -0,0 +1,1 @@
+"""Tests for detection metrics."""
diff --git a/sktime/performance_metrics/detection/tests/test_all_metrics_detection.py b/sktime/performance_metrics/detection/tests/test_all_metrics_detection.py
new file mode 100644
index 000000000..414324fd5
--- /dev/null
+++ b/sktime/performance_metrics/detection/tests/test_all_metrics_detection.py
@@ -0,0 +1,76 @@
+"""Tests for all sktime detection metrics."""
+
+import pandas as pd
+import pytest
+
+from sktime.tests.test_all_estimators import BaseFixtureGenerator, QuickTester
+
+
+class DetectionMetricFixtureGenerator(BaseFixtureGenerator):
+    """Fixture generator for time series detection metric tests.
+
+    Fixtures parameterized
+    ----------------------
+    estimator_class: estimator inheriting from BaseObject
+        ranges over estimator classes not excluded by EXCLUDE_ESTIMATORS, EXCLUDED_TESTS
+    estimator_instance: instance of estimator inheriting from BaseObject
+        ranges over estimator classes not excluded by EXCLUDE_ESTIMATORS, EXCLUDED_TESTS
+        instances are generated by create_test_instance class method
+    scenario: instance of TestScenario
+        ranges over all scenarios returned by retrieve_scenarios
+    """
+
+    # note: this should be separate from TestAllDetectionMetrics
+    #   additional fixtures, parameters, etc should be added here
+    #   TestAllDetectionMetrics should contain the tests only
+
+    estimator_type_filter = "metric_detection"
+
+    fixture_sequence = [
+        "estimator_class",
+        "estimator_instance",
+        "fitted_estimator",
+        "scenario",
+    ]
+
+
+class TestAllDetectionMetrics(DetectionMetricFixtureGenerator, QuickTester):
+    """Module level tests for all sktime detection metrics."""
+
+    def test_evaluate_output(self, estimator_instance):
+        """Test expected output type of evaluate_output."""
+        y_pred = pd.DataFrame({"ilocs": [0, 1, 3, 4, 5]})  # locs are 1, 2, 5, 42, 43
+        y_true = pd.DataFrame({"ilocs": [0, 2, 3]})  # locs are 1, 4, 5
+        X = pd.DataFrame({"foo": [8, 4, 3, 7, 10, 12]}, index=[1, 2, 4, 5, 42, 43])
+
+        metric = estimator_instance
+
+        requires_X = metric.get_tag("requires_X")
+        requires_y_true = metric.get_tag("requires_y_true")
+
+        # test full signature
+        loss = metric(y_true, y_pred, X)
+        assert isinstance(loss, float)
+
+        # test without X
+        if not requires_X:
+            loss_no_X = metric(y_true, y_pred)
+            assert isinstance(loss_no_X, float)
+        else:
+            with pytest.raises(TypeError):
+                metric(y_true, y_pred)
+
+        # test without y_true
+        if not requires_y_true:
+            loss_no_y_true_kwarg = metric(y_pred=y_pred)
+            assert isinstance(loss_no_y_true_kwarg, float)
+
+            loss_no_y_true_posarg = metric(y_pred)
+            assert isinstance(loss_no_y_true_posarg, float)
+
+            assert loss_no_y_true_kwarg == loss_no_y_true_posarg
+        else:
+            with pytest.raises(TypeError):
+                metric(y_pred)
+            with pytest.raises(TypeError):
+                metric(y_pred=y_pred)
diff --git a/sktime/performance_metrics/detection/tests/test_chamfer.py b/sktime/performance_metrics/detection/tests/test_chamfer.py
new file mode 100644
index 000000000..90a8d3017
--- /dev/null
+++ b/sktime/performance_metrics/detection/tests/test_chamfer.py
@@ -0,0 +1,33 @@
+"""Tests for the directed Chamfer distance."""
+
+import pandas as pd
+import pytest
+
+from sktime.performance_metrics.detection._chamfer import DirectedChamfer
+from sktime.tests.test_switch import run_test_for_class
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(DirectedChamfer),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_chamfer():
+    """Test the directed Chamfer distance."""
+    y_pred = pd.DataFrame({"ilocs": [0, 1, 3, 4, 5]})  # locs are 1, 2, 5, 42, 43
+    y_true = pd.DataFrame({"ilocs": [0, 2, 3]})  # locs are 1, 4, 5
+    X = pd.DataFrame({"foo": [8, 4, 3, 7, 10, 12]}, index=[1, 2, 4, 5, 42, 43])
+
+    metric = DirectedChamfer()
+
+    loss1 = metric(y_true, y_pred)
+    assert isinstance(loss1, float)
+    # closest ilocs are 0, 0, 3, 3, 3
+    # absolute distance is 0 + 1 + 0 + 1 + 2 = 4
+    assert loss1 == 4
+
+    loss2 = metric(y_true, y_pred, X)
+    assert isinstance(loss2, float)
+    # predicted locs are 1, 2, 5, 42, 43
+    # closest locs are 1, 1, 5, 5, 5
+    # distances are 0 + 1 + 0 + 37 + 38 = 76
+    assert loss2 == 76
diff --git a/sktime/performance_metrics/detection/tests/test_hausdorff.py b/sktime/performance_metrics/detection/tests/test_hausdorff.py
new file mode 100644
index 000000000..a1954c1e2
--- /dev/null
+++ b/sktime/performance_metrics/detection/tests/test_hausdorff.py
@@ -0,0 +1,33 @@
+"""Tests for the directed Hausdorff distance."""
+
+import pandas as pd
+import pytest
+
+from sktime.performance_metrics.detection._hausdorff import DirectedHausdorff
+from sktime.tests.test_switch import run_test_for_class
+
+
+@pytest.mark.skipif(
+    not run_test_for_class(DirectedHausdorff),
+    reason="run test only if softdeps are present and incrementally (if requested)",
+)
+def test_hausdorff():
+    """Test the directed Hausdorff distance."""
+    y_pred = pd.DataFrame({"ilocs": [0, 1, 3, 4, 5]})  # locs are 1, 2, 5, 42, 43
+    y_true = pd.DataFrame({"ilocs": [0, 2, 3]})  # locs are 1, 4, 5
+    X = pd.DataFrame({"foo": [8, 4, 3, 7, 10, 12]}, index=[1, 2, 4, 5, 42, 43])
+
+    metric = DirectedHausdorff()
+
+    loss1 = metric(y_true, y_pred)
+    assert isinstance(loss1, float)
+    # closest ilocs are 0, 0, 3, 3, 3
+    # absolute distance is max(0, 1, 0, 1, 2) = 2
+    assert loss1 == 2
+
+    loss2 = metric(y_true, y_pred, X)
+    assert isinstance(loss2, float)
+    # predicted locs are 1, 2, 5, 42, 43
+    # closest locs are 1, 1, 5, 5, 5
+    # absolute distance is max(0, 1, 0, 37, 38) = 38
+    assert loss2 == 38