sklearn在sklearn.metrics import precision_score给我们提供了接口去测试数据集上的precision,我们知道
- precision=TP/(TP+TN)
那么如何让sklearn知道我们的数据集中哪一个是正类?
首先先看一下sklearn官网关于precision_score函数的定义,其中重点关注pos_label和average这两个属性,
sklearn.metrics.precision_score(y_true, y_pred, *, labels=None, pos_label=1, average=‘binary’, sample_weight=None, zero_division=‘warn’)
通过查看sklearn中对于precision_score中pro_score这个属性的说明,下方截图的第一句,意思是如果average这个属性='binary’并且数据为二分类,那么就报告pos_label所标注的类的结果。 (而pos_label默认标注的为1),

意思说如果数据为二分类,且另一个属性average=“binary”,那么precision计算的就是pos_label所标注的这个类的结果,即我们称之为的"正类"的结果。
那么average又是什么呢?
解释如下,当average这个属性是binary时,(默认就是binary)解释是:仅会报告出由pos_label所标注类的结果。这个仅当y_{true,pred}为二分类时才生效。
所以意思
就是仅当二分类时,pos_label为哪一个数字,对应数据集中的标签就为正类,如果不填pos_label,则默认数据集中标签为1的是正类,并且如果不填average默认就是binary二分类的情况。
precision_score(y_true, y_pred, pos_label=1, average=‘binary’) 意思就是让数据集中标签为1的类为正类。