expected_cost_loss_acquisition#

empulse.metrics.expected_cost_loss_acquisition(y_true, y_proba, *, contribution=7000, contact_cost=50, sales_cost=500, direct_selling=1, commission=0.1, normalize=False, check_input=True)[source]#

Expected cost of a classifier for customer acquisition.

The cost function 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_true1D array-like, shape=(n_samples,)

Binary target values (‘churn’: 1, ‘no churn’: 0).

y_proba1D array-like, shape=(n_samples,)

Target probabilities, should lie between 0 and 1.

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).

normalizebool, default=True

Normalize the cost function by the number of samples. If True, return the average expected cost for customer acquisition.

check_inputbool, default=True

Perform input validation. Turning off improves performance, useful when using this metric as a loss function.

Returns:
empa_costfloat

Instance-specific cost function according to the EMPA measure.