mpa#
- empulse.metrics.mpa(y_true, y_score, *, contribution=8000, contact_cost=50, sales_cost=500, direct_selling=1, commission=0.1, check_input=True)[source]#
Maximum Profit measure for customer Acquisition (MPA).
MPA presumes a situation where leads are targeted either directly or indirectly. Directly targeted leads are contacted and handled by the internal sales team. Indirectly targeted leads are contacted and then referred to intermediaries, which receive a commission. The company gains a contribution from a successful acquisition.
- Parameters:
- y_truearray-like of shape (n_samples,)
Binary target values (‘acquisition’: 1, ‘no acquisition’: 0).
- y_scorearray-like of shape (n_samples,)
Target scores, can either be probability estimates or non-thresholded decision values.
- contributionfloat, default=7000
Average contribution of a new customer (
contribution ≥ 0
).- sales_costfloat, default=500
Average sale conversion cost of targeted leads handled by the company (
sales_cost ≥ 0
).- contact_costfloat, default=50
Average contact cost of targeted leads (
contact_cost ≥ 0
).- direct_sellingfloat, default=1
Fraction of leads sold to directly (
0 ≤ direct_selling ≤ 1
).direct_selling = 0
for indirect channel.direct_selling = 1
for direct channel.- commissionfloat, default=0.1
Fraction of contribution paid to the intermediaries (
0 ≤ commission ≤ 1
).Note
The commission is only relevant when there is an indirect channel (
direct_selling < 1
).- check_inputbool, default=True
Perform input validation. Turning off improves performance, useful when using this metric as a loss function.
- Returns:
- mpafloat
Maximum Profit measure for customer Acquisition
- thresholdfloat
Fraction of the leads that should be targeted to maximize profit
Examples
>>> from empulse.metrics import mpa >>> >>> y_true = [0, 1, 0, 1, 0, 1, 0, 1] >>> y_score = [0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.8, 0.9] >>> mpa(y_true, y_score) (3706.25, 0.875)