logo资料库

sklearn中多分类问题各指标的计算.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
sklearn中多分类问题各指标的计算 中多分类问题各指标的计算 sklearn中中api介绍介绍 常用的常用的api有有 accuracy_score precision_score recall_score f1_score 分别是分别是: ​ 正确率 ​ 准确率 P ​ 召回率 R ​ f1-score 其具体的计算方式: 其具体的计算方式 accuracy_score 只有一种计算方式,就是对所有的预测结果 判对的个数/总数 sklearn具有多种的计算方式,其中每一种模式的说明如下: 具有不同的模式 ‘micro’, ‘macro’, ‘weighted’ ``'binary'``: 只适用于二分类问题,需要pos_label指定以哪一个作为正例 ``'micro'``: 通过计算总真阳性数来计算全局度量,假阴性和假阳性 ``'macro'``: 计算每个标签的指标,并计算它们的平均值。没有考虑到标签的不平衡。 ``'weighted'``: 计算每个标签的指标,并根据支持度(每个标签的真实实例数)找到它们的平均值。这改变了“宏”来解释标签的不平衡;它可以导致一个f-score,不介于精度和 召回之间。 示例示例: 构建一组数据 y = [1,2,2,1,3,3,1,1] y_pre = [1,2,1,1,3,3,3,1] 直接计算每一类的TP FP TN FN 1 2 3 tp 3 1 2 fp 1 0 1 tn 3 6 5 fn 1 1 0 micro precision_score 针对micro,计算时就是对每一类,计算TP/TP+FP 手动计算: 6/8 = 0.75 api print('precision_score:{}'.format(precision_score(y, y_pre,average='micro'))) precision_score:0.75 recall_score 计算每一类的TP/TP+FN 6/8 = 0.75 print('recall_score:{}'.format(recall_score(y, y_pre,average='micro'))) recall_score:0.75
F1 0.75 print('F1:{}'.format(f1_score(y, y_pre,average='micro'))) F1:0.75 macro 根据算出的每一类的混淆矩阵,先计算针对每一类的P和R然后再求算数平均值 precision_score 1:3/4 2:1 3:2/3 最终:80.55% print((precision_score(y, y_pre,average='macro'))) 0.805555555556 recall_score 1:3/4 2:1/2 3:1 最终:0.75 print((recall_score(y, y_pre,average='macro'))) 0.75 F1 1:3/4 2:2/3 3:4/5 最终:73.89% print((f1_score(y, y_pre,average='macro'))) 0.738888888889 weighted 加权平均值 三个类别的权重分别为: 1:1/2 2:1/4 3:1/4 再根据macro中算出的各类的分数,加权平均 precision_score 1:3/4 2:1 3:2/3 最终:79.17% print((precision_score(y, y_pre,average='weighted'))) 0.791666666667 recall_score 1:3/4 2:1/2 3:1 最终:0.75 print((recall_score(y, y_pre,average='weighted'))) 0.75 F1 1:3/4 2:2/3 3:4/5 最终:74.167
print((f1_score(y, y_pre,average='weighted'))) 0.741666666667 作者:hylalalala
分享到:
收藏