写在前面:
sklearn(三)计算recall:使用metrics.recall_score()计算二分类的召回率
1.sklearn.metrics.recall_score()的使用方法
使用方式:
sklearn.metrics.recall_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary',
sample_weight=None, zero_division='warn')
输入参数:
y_true:真实标签。
y_pred:预测标签。
labels:可选参数,是一个list。可以排除数据中出现的标签,比如负类别比较多时,去除负类。
pos_label:字符串或者int类型,默认值是1。多分类情况下:
- 如果计算整体的 recall,可忽略该参数
- 如果
labels=[pos_label] 并且average != 'binary',则返回该类别的recall
average:字符串类型,取值为 [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’]。多分类必须的参数,如果为None,则返回每一类的recall,否则,根据其参数返回整体的召回率。
'macro':用于多分类,只有两个属性可以选择 ‘macro’ 和 ‘weighted’ 。' macro ':计算每个标签的指标,并计算它们的未加权平均值。不考虑样本类别是否平衡。' weighted ':计算每个标签的指标,并找到它们的平均值,对(每个标签的真实实例的数量)进行加权。
'micro'
:
整体计算TP、FN、FP,然后根据公式计算得分。
'macro'
:
计算每个标签的指标,并计算它们的未加权平均值。不考虑样本类别是否平衡。
'weighted'
:
计算每个标签的指标,并找到它们的平均值,对(每个标签的真实实例的数量)进行加权。This alters ‘macro’ to account for label imbalance; it can result in an F-score that is not between precision and recall.
'samples'
: (没用它)
sample_weight:(没用它)
zero_division:(没用它)
输出:
正样本召回率,浮点型。
2.例子
此处需要一个混淆矩阵的手算例子,后续补充ing
demo: