EmpiricalMinCost#
- class empulse.metrics.EmpiricalMinCost[source]#
Strategy for the Empirical Minimum Cost metric.
The cost phrasing of
EmpiricalMaxProfit: it walks the same ranking and reports the value at the same optimal cutoff negated, as a cost to minimize rather than a profit to maximize. Which of the two you use is a presentation choice – models train identically on either, because they optimize_loss, which removes the sign difference.See also
EmpiricalMaxProfit: The profit phrasing of the same metric.- build(tp_benefit, tn_benefit, fp_cost, fn_cost)#
Build the metric strategy.
- property capabilities#
The set of
Capabilitymembers this strategy supports.Combines
_capabilitieswith whateveroptimal_threshold,optimal_rate,logit_objective,gradient_boost_objectiveandprepare_boost_objectivethis strategy overrides – see_capabilities_from_overrides. A caller should use this instead ofisinstance(strategy, SomeConcreteStrategy)or calling a method and catchingNotImplementedError.
- gradient_boost_objective(y_true, y_score, **parameters)#
Compute the gradient of the metric with respect to gradient boosting instances.
- Parameters:
- y_truearray-like of shape (n_samples,)
The ground truth labels.
- y_scorearray-like of shape (n_samples,)
The predicted labels, probabilities, or decision scores (based on the chosen metric).
- **parametersfloat or array-like of shape (n_samples,)
The parameter values for the costs and benefits defined in the metric. If any parameter is a stochastic variable, you should pass values for their distribution parameters. You can set the parameter values for either the symbol names or their aliases.
If
float, the same value is used for all samples (class-dependent).If
array-like, the values are used for each sample (instance-dependent).
- Returns:
- gradientNDArray of shape (n_samples,)
The gradient of the metric loss with respect to the gradient boosting weights.
- hessianNDArray of shape (n_samples,)
The hessian of the metric loss with respect to the gradient boosting weights.
- logit_objective(features, y_true, C, l1_ratio, fit_intercept, **parameters)#
Compute the logit loss and its gradient with respect to the logistic regression weights.
- Parameters:
- featuresNDArray of shape (n_samples, n_features)
The features of the samples.
- y_trueNDArray of shape (n_samples,)
The ground truth labels.
- Cfloat
Regularization strength parameter. Smaller values specify stronger regularization.
- l1_ratiofloat
The Elastic-Net mixing parameter, with range 0 <= l1_ratio <= 1. l1_ratio=0 corresponds to L2 penalty, l1_ratio=1 to L1 penalty.
- fit_interceptbool
Specifies if an intercept should be included in the model.
- **parametersfloat or NDArray of shape (n_samples,)
The parameter values for the costs and benefits defined in the metric. If any parameter is a stochastic variable, you should pass values for their distribution parameters. You can set the parameter values for either the symbol names or their aliases.
If
float, the same value is used for all samples (class-dependent).If
array-like, the values are used for each sample (instance-dependent).
- Returns:
- logistic_objectiveLogitObjective
A class that implements the logit loss and its gradient.
- optimal_rate(y_true, y_score, **parameters)#
Compute the fraction of samples that should be targeted (predicted positive) to maximize profit.
- Parameters:
- y_truearray-like of shape (n_samples,)
The ground truth labels.
- y_scorearray-like of shape (n_samples,)
The predicted labels, probabilities, or decision scores used to rank the samples.
- **parametersfloat or array-like of shape (n_samples,)
The parameter values for the costs and benefits defined in the metric.
If
float, the same value is used for all samples (class-dependent).If
array-like, the values are used for each sample (instance-dependent).
- Returns:
- optimal_ratefloat
The optimal predicted positive rate.
- optimal_threshold(y_true, y_score, **parameters)#
Compute the score threshold above which a sample should be targeted to maximize profit.
- Parameters:
- y_truearray-like of shape (n_samples,)
The ground truth labels.
- y_scorearray-like of shape (n_samples,)
The predicted labels, probabilities, or decision scores used to rank the samples.
- **parametersfloat or array-like of shape (n_samples,)
The parameter values for the costs and benefits defined in the metric.
If
float, the same value is used for all samples (class-dependent).If
array-like, the values are used for each sample (instance-dependent).
- Returns:
- optimal_thresholdfloat
The optimal classification threshold.
- prepare_boost_objective(y_true, **parameters)#
Compute the gradient’s constant term of the metric wrt gradient boost.
- Parameters:
- y_trueNDArray of shape (n_samples,)
The ground truth labels.
- **parametersfloat or NDArray of shape (n_samples,)
The parameter values for the costs and benefits defined in the metric. If any parameter is a stochastic variable, you should pass values for their distribution parameters. You can set the parameter values for either the symbol names or their aliases.
If
float, the same value is used for all samples (class-dependent).If
array-like, the values are used for each sample (instance-dependent).
- Returns:
- gradient_constNDArray of shape (n_samples, n_features)
The constant term of the gradient.
- property requires_dynamic_boost_objective#
Whether gradients must be recomputed from the metric each boosting round.
Deprecated since version Use:
Capability.PRECOMPUTED_BOOST_OBJECTIVE not in strategy.capabilitiesinstead.Truefor strategies whose per-sample loss is not linear in the predicted probability (e.g.LogCost) or that need the current round’s scores to locate a threshold (e.g.MaxProfit); such strategies cannot use the precomputed constant returned byprepare_boost_objective.
- score(y_true, y_score, **parameters)[source]#
Compute the empirical minimum cost score.
- Parameters:
- y_truearray-like of shape (n_samples,)
The ground truth labels.
- y_scorearray-like of shape (n_samples,)
The predicted labels, probabilities, or decision scores (based on the chosen metric).
- **parametersfloat or array-like of shape (n_samples,)
The parameter values for the costs and benefits defined in the metric. If any parameter is a stochastic variable, you should pass values for their distribution parameters. You can set the parameter values for either the symbol names or their aliases.
If
float, the same value is used for all samples (class-dependent).If
array-like, the values are used for each sample (instance-dependent).
- Returns:
- scorefloat
The empirical minimum cost score.