b_cubed_precision_estimator#

er_evaluation.b_cubed_precision_estimator(prediction, sample, weights)[source]#

B-cubed precision design estimator.

Given a predicted disambiguation prediction, a set of ground truth clusters sample, and a set of cluster sampling weights weights (e.g., inverse probability weights for each cluster), this returns a B-cubed precision estimate together with its estimated standard deviation.

Parameters:
  • prediction (Series) – Membership vector indexed by cluster elements and with values corresponding to associated cluster identifier.

  • sample (Series) – Membership vector indexed by cluster elements and with values corresponding to associated cluster identifier.

  • weights (Series) – Pandas Series indexed by cluster identifier and with values corresponding to cluster sampling weights (e.g., inverse sampling probabilities). Can also be the string “uniform” for uniform sampling weights, or “cluster_size” for inverse cluster size sampling weights.

Returns:

B-cubed precision estimate and standard deviation estimate.

Return type:

tuple

Examples

>>> prediction = pd.Series(index=[1,2,3,4,5,6,7,8], data=[1,1,2,3,2,4,4,4])
>>> sample = pd.Series(index=[1,2,3,4,5], data=["c1", "c1", "c1", "c2", "c2"])
>>> weights = pd.Series(1, index=sample.unique()) # Uniform cluster weights
>>> b_cubed_precision_estimator(prediction, sample, weights)
(0.7916666666666667, 0.0416666666666673)