对于二分类问题,precision,recall,auc,f1_score的计算原理都比较熟悉,但是多分类问题的计算还是有一点小小的区别,在使用sklearn.metrics的时候需要注意一下;
对于sklearn.metrics下的roc_auc_score, precision_score, recall_score, f1_score的几个参数需要设置:
sklearn.metrics.precision_score
(y_true, y_pred, labels=None, pos_label=1, average=’binary’, sample_weight=None)
以precision_score为例,主要是average参数有几种选择:
binary:二分类
macro:每个标签都计算precision,然后求平均,不考虑数据均衡问题
micro:计算全数据的precision
weighted,:每个标签都计算precision,然后考虑各个类别数据量权重加权求和
samples:多标签问题使用
所以在数据均衡情况下一般使用macro
f1_score 的计算公式 f1_score = (1+12) * p * r / 12 * r + p
从公式中可以看出参数1其实是准确率和召回率的调和参数,小于1则提高准确率的权重,大于1则提高召回率的权重,因此在实际中也有F0.5-score, F2-score的使用