Compute the precision_score metric — provided by scikit-learn. Use when the user has predictions and ground-truth and needs to compute precision_score, or asks how to score with precision_score.
Installs into .claude/skills of the current project.
Are you the author of Precision Score?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-precision-score)
---
name: precision-score
description: Compute the precision_score metric — provided by scikit-learn. Use when the user has predictions and ground-truth and needs to compute precision_score, or asks how to score with precision_score.
metadata:
skill_kind: metric
source_lib: scikit-learn
import_path: sklearn.metrics.precision_score
source: library_introspection
---
# precision-score
> Metric `precision_score` from `scikit-learn` (sklearn.metrics.precision_score)
## When to invoke this skill
The user has predictions + ground truth and asks to evaluate with precision_score, or
mentions `sklearn.metrics.precision_score` directly, or wants the standard scikit-learn implementation.
## Reference signature
```python
from sklearn.metrics import precision_score
# precision_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')
```
## Library docstring
```
Compute the precision.
The precision is the ratio ``tp / (tp + fp)`` where ``tp`` is the number of
true positives and ``fp`` the number of false positives. The precision is
intuitively the ability of the classifier not to label as positive a sample
that is negative.
The best value is 1 and the worst value is 0.
Support beyond :term:`binary` targets is achieved by treating :term:`multiclass`
and :term:`multilabel` data as a collection of binary problems, one for each
label. For the :term:`binary` case, setting `average='binary'` will return
precision for `pos_label`. If `average` is not `'binary'`, `pos_label` is ignored
and precision for both classes are computed, then averaged or both returned (when
`average=None`). Similarly, for :term:`multiclass` and :term:`multilabel` targets,
precision for all `labels` are either returned or averaged depending on the
`average` parameter. Use `labels` specify the set of labels to calculate precision
for.
Read more in the :ref:`User Guide <precision_recall_f_measure_metrics>`.
Parameters
----------
y_true : 1d array-like, or label indicator array / sparse matrix
Ground truth (correct) target values. Sparse matrix is only supported when
targets are of :term:`multilabel` type.
y_pred : 1d array-like, or label indicator array / sparse matrix
Estimated targets as returned by a classifier. Sparse matrix is only
supported when targets are of :term:`multilabel` type.
labels : array-like, default=None
The set of labels to include when `average != 'binary'`, and their
order if `average is None`. Labels present in the data can be
excluded, for example in multiclass classification to exclude a "negative
class". Labels not present in the data can be included and will be
"assigned" 0 samples. For multilabel targets, labels are column indices.
By default, all labels in `y_true` and `y_pred` are used in sorted order.
.. versionchanged:: 0.17
Parameter `labels` improved for multiclass problem.
pos_label : int, float, bool or str, default=1
The class to report if `average='binary'` and the data is binary,
otherwise this parameter is ignored.
For multiclass or multilabel
```
## Quick recipe
```python
import sklearn.metrics as _m
score = _m.precision_score(y_true, y_pred)
```
## Don'ts
- Don't reimplement when the library version handles edge cases (NaN, ties, empty inputs) better than a hand-rolled formula.
- Always check the library version's argument order — sklearn is `(y_true, y_pred)` while torchmetrics is `(preds, target)`.