skada.metrics.MaNoScorer
- class skada.metrics.MaNoScorer(p=4, threshold=5, greater_is_better=True)[source]
MaNo scorer inspired by [37], an approach for unsupervised accuracy estimation.
This scorer used the model's predictions on target data to estimate the accuracy of the model. The original implementation in [37] is tailored to neural networks and consist of three steps: 1) Recover target logits (inference step), 2) Normalize them as probabilities (e.g., with softmax), 3) Aggregate by averaging the p-norms of the target normalized logits.
To ensure compatibility with any estimator, we adapt the original implementation. If the estimator is a neural network, follow 1) --> 2) --> 3) like in [37]. Else, directly use the probabilities predicted by the estimator and then do 3).
See [37] for details.
- Parameters:
- pint, default=4
Order for the p-norm normalization. It must be non-negative.
- thresholdint, default=5
Threshold value to determine which normalization to use. If threshold <= 0, softmax normalization is always used. See Eq.(6) of [37] for more details.
- greater_is_betterbool, default=True
Whether higher scores are better.
- Returns:
- scorefloat in [0, 1] (or [-1, 0] depending on the value of self._sign).
References
- set_score_request(*, sample_domain: bool | None | str = '$UNCHANGED$') MaNoScorer
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config()
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.- Parameters:
- sample_domainstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_domain
parameter inscore
.
- Returns:
- selfobject
The updated object.