1.召回率的计算原理
   
    从
    
     常用评价指标
    
    文章中摘出来:
   
召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P。被预测为正的样本占正样本总量的比例。Recall体现了模型对正样本的识别能力,Recall越高,模型对正样本的识别能力越强。
    2.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.
   
    
     average:字符串类型,
    
    取值为 [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’]。默认为二分类,给出正样本的召回率,也就是pos_label默认参数1时的召回率。
   
    
     sample_weight
    
    :(没用它)
   
    
     zero_division
    
    :
   
输出:
正样本召回率,浮点型。
    3.例子
   
    3.1数据格式:
   
把数据存放在统计目录:new_two.xlsx。
| id | label | pred_label | pred_score | model_predict_scores | 
| 1537 | 0 | 0 | 0.98361117 | [0.98361117 0.01638886] | 
| 1548 | 0 | 0 | 0.9303047 | [0.9303047 0.06969527] | 
| 1540 | 0 | 0 | 0.978964 | [0.978964 0.02103605] | 
| 15525 | 1 | 1 | 0.9876039 | [0.01239602 0.9876039 ] | 
# -*- encoding:utf-8 -*-
import requests, xlrd, re, xlwt, json
from collections import defaultdict
from sklearn import metrics
def calculate_auc(read_path):
    workbook = xlrd.open_workbook(read_path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    label = [] # 真实标签
    pred = [] # 预测标签
    score = [] #跟预测标签对应的模型打分
    first = [] # 模型打分结果中类别0的概率,是一个n行 ,1列的数组
    preds = []  # 模型的打分结果中类别1的概率,是一个n行 ,1列的数组
    for i in range(0, 100):
        value = worksheet.cell_value(i, 1)
        value1 = worksheet.cell_value(i, 2)
        label.append(int(value))
        pred.append(int(value1))
        score.append(float(worksheet.cell_value(i, 3)))
        a = worksheet.cell_value(i, 4)
        d = a.replace('[', '')
        d = d.replace(']', '')
        d = d.strip()
        d = d.split(" ")
        l = len(d)
        print(' len ', l)
        g = []
        h = []
        h.append(float(d[0]))
        g.append(float(d[l - 1]))
        preds.append(g)
        first.append(h)
    recall_score = metrics.recall_score(label, pred)
    print('--recall_score:', recall_score)
 
if __name__ == '__main__':
    read_path = './new_two.xlsx'
    calculate_auc(read_path)输出结果:
–recall_score: 0.8775510204081632
参考:
 
版权声明:本文为pearl8899原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
