napkinxc.measures.precision_at_k

napkinxc.measures.precision_at_k(Y_true, Y_pred, k=5)[source]

Calculate precision at 1-k places. Precision at k is defined as:

\[p@k = \frac{1}{k} \sum_{l \in \text{rank}_k(\hat{\pmb{y}})} y_l \,,\]

where \(\pmb{y} \in {0, 1}^m\) is ground truth label vector, \(\hat{\pmb{y}} \in \mathbb{R}^m\) is predicted labels score vector, and \(\text{rank}_k(\hat{\pmb{y}})\) returns the \(k\) indices of \(\hat{\pmb{y}}\) with the largest values, ordered in descending order.

Parameters:
  • Y_true (ndarray, csr_matrix, list[list|set[int|str]]) – Ground truth provided as a matrix with non-zero values for true labels or a list of lists or sets of true labels.

  • Y_pred (ndarray, csr_matrix, list[list[int|str]], list[list[tuple[int|str, float]]) – Predicted labels provided as a matrix with scores or list of rankings as a list of labels or tuples of labels with scores (label, score). In the case of the matrix, the ranking will be calculated by sorting scores in descending order.

  • k (int, optional) – Calculate at places from 1 to k, defaults to 5

Returns:

Values of precision at 1-k places.

Return type:

ndarray