dataeval.utils.thresholds.resolve_threshold¶
-
dataeval.utils.thresholds.resolve_threshold(value=
None)¶ Convert a
ThresholdLikevalue to aThresholdinstance.- Parameters:¶
- value : ThresholdLike or None, default None¶
The threshold specification:
None: defaultAdaptiveThreshold()str: named threshold with defaults (e.g."zscore","modzscore","iqr","constant","adaptive")float: symmetric multiplier for the default methodtuple[float | None, float | None]: asymmetric bounds for the default methodtuple[str, ThresholdBounds]: named threshold with bounds, e.g.("zscore", 2.5)or("iqr", (1.0, 3.0))tuple[str, ThresholdBounds | None, ThresholdLimits]: named threshold with bounds and limit clamping, e.g.("zscore", (1.0, 3.5), (0.0, 1.0)). PassNoneas bounds to use the class defaults.tuple[ThresholdBounds | None, ThresholdLimits]: default threshold with bounds and limit clamping, e.g.(2.5, (0.0, 1.0))or(None, (0.0, 1.0))for default multiplier.Threshold: returned as-is
- Returns:¶
A configured Threshold instance.
- Return type:¶
- Raises:¶
ValueError – If a threshold type string does not match any registered threshold subclass.
Examples
>>> resolve_threshold() AdaptiveThreshold({'lower_multiplier': 3.5, 'upper_multiplier': 3.5})>>> resolve_threshold("zscore") ZScoreThreshold({'lower_multiplier': 3.0, 'upper_multiplier': 3.0})>>> resolve_threshold(2.5) AdaptiveThreshold({'lower_multiplier': 2.5, 'upper_multiplier': 2.5})>>> resolve_threshold((None, 5.0)) AdaptiveThreshold({'lower_multiplier': None, 'upper_multiplier': 5.0})>>> resolve_threshold(("zscore", 2.5)) ZScoreThreshold({'lower_multiplier': 2.5, 'upper_multiplier': 2.5})>>> resolve_threshold(("iqr", (1.0, 3.0))) IQRThreshold({'lower_multiplier': 1.0, 'upper_multiplier': 3.0})>>> resolve_threshold(("constant", (0.0, 1.0))) ConstantThreshold({'lower': 0.0, 'upper': 1.0})>>> resolve_threshold(IQRThreshold(lower_multiplier=1.0, upper_multiplier=2.0)) IQRThreshold({'lower_multiplier': 1.0, 'upper_multiplier': 2.0})>>> resolve_threshold(("zscore", 3.0, (0.0, 1.0))) ZScoreThreshold({'lower_limit': 0.0, 'upper_limit': 1.0, 'lower_multiplier': 3.0, 'upper_multiplier': 3.0})>>> resolve_threshold(("zscore", (1.0, 3.5), (0.0, 1.0))) ZScoreThreshold({'lower_limit': 0.0, 'upper_limit': 1.0, 'lower_multiplier': 1.0, 'upper_multiplier': 3.5})>>> resolve_threshold(("zscore", None, (0.0, 1.0))) ZScoreThreshold({'lower_limit': 0.0, 'upper_limit': 1.0, 'lower_multiplier': 3.0, 'upper_multiplier': 3.0})>>> resolve_threshold(("iqr", (1.0, 2.0), (None, 0.9))) IQRThreshold({'upper_limit': 0.9, 'lower_multiplier': 1.0, 'upper_multiplier': 2.0})>>> resolve_threshold((None, (0.0, 1.0))) AdaptiveThreshold({'lower_limit': 0.0, 'upper_limit': 1.0, 'lower_multiplier': 3.5, 'upper_multiplier': 3.5})>>> resolve_threshold((2.5, (0.0, 1.0))) AdaptiveThreshold({'lower_limit': 0.0, 'upper_limit': 1.0, 'lower_multiplier': 2.5, 'upper_multiplier': 2.5})