You can easily write custom metric functions for scikit-learn, but you need to take an extra step if you want to use those metrics in a hyperparameter search. To add a number there, you need to use a scorer instead.
https://www.youtube.com/watch?v=67KMDSitw1M
In this second calmcode video, we see how we can easily implement our own custom business metric.

Meta routing in scikit-learn refers to a pipeline architecture that lets you send different data points through different processing steps based on their characteristics.
Think of it like a traffic controller at an airport directing planes to different runways. Instead of sending all your data through the same sequence of transformations, meta routing allows you to create conditional paths.
<aside> 💡
Wenn ein Feauture eine besonders hohe Aussagekraft hat für unsere prediction, können wir dieses Feature speziell routen, damit es besonders hohen Impact für die prediction hat. Beispiel: die Höhe einer Transaktion, macht diese Transaktion wichtiger, als viele kleine Transaktionen mit wenigen Cent-Beträgen
</aside>

For example:
Metadata routing is a relatively new feature that allows you to, as the name implies, route metadata to different components in your machine learning setup. It's especially useful for things like sample_weight, which require data per row of your input to be passed along. But you can imagine many elaborate usecases such as (custom) estimators but also (custom) scorers. This video explains how they work.