CustomMetric
CustomMetric
Example
# Business conversion rate metric
conversion_rate = CustomMetric(
name="weekly_conversion_rate",
model_id=model.id,
definition="sum(if(prediction_score > 0.7 and converted == 1, 1, 0)) / sum(if(prediction_score > 0.7, 1, 0))",
description="Conversion rate for high-confidence predictions"
).create()
# Data quality metric
missing_rate = CustomMetric(
name="feature_missing_rate",
model_id=model.id,
definition="sum(if(is_null(income), 1, 0)) / count(income)",
description="Percentage of records with missing income values"
).create()
# Fairness metric
fairness_metric = CustomMetric(
name="demographic_parity",
model_id=model.id,
definition="abs((sum(if(gender == 'Male', predicted_churn, 0)) / sum(if(gender == 'Male', 1, 0))) - (sum(if(gender == 'Female', predicted_churn, 0)) / sum(if(gender == 'Female', 1, 0))))",
description="Demographic parity difference between gender groups"
).create()
# Use in alert rule
alert_rule = AlertRule(
name="conversion_rate_alert",
model_id=model.id,
metric_id=conversion_rate.id,
priority=Priority.HIGH,
compare_to=CompareTo.TIME_PERIOD,
condition=AlertCondition.LESSER,
bin_size=BinSize.DAY,
critical_threshold=0.15, # Alert if conversion drops below 15%
compare_bin_delta=7
).create()create()
Returns
Raises
delete()
Raises
classmethod from_name(name, model_id)
Parameters
Parameter
Type
Required
Default
Description
Returns
Raises
classmethod get(id_)
Parameters
Parameter
Type
Required
Default
Description
Returns
Raises
classmethod get_organization_id()
Returns
classmethod get_organization_name()
Returns
classmethod list(model_id)
Parameters
Parameter
Type
Required
Default
Description
Yields
Raises
init(name, model_id, definition, description=None)
Last updated
Was this helpful?