classification_report简介

sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息。 
主要参数: 
y_true:1维数组,或标签指示器数组/稀疏矩阵,目标值。 
y_pred:1维数组,或标签指示器数组/稀疏矩阵,分类器返回的估计值。 
labels:array,shape = [n_labels],报表中包含的标签索引的可选列表。 
target_names:字符串列表,与标签匹配的可选显示名称(相同顺序)。 
sample_weight:类似于shape = [n_samples]的数组,可选项,样本权重。 
digits:int,输出浮点值的位数.

classification_report用法示例:

from sklearn.metrics import classification_report
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names))

输出:

             precision    recall  f1-score   support

    class 0       0.50      1.00      0.67         1
class 1 0.00 0.00 0.00 1
class 2 1.00 0.67 0.80 3 avg / total 0.70 0.60 0.61 5

其中列表左边的一列为分类的标签名,右边support列为每个标签的出现次数.avg / total行为各列的均值(support列为总和). 
precision recall f1-score三列分别为各个类别的精确度/召回率及 F1 F1值.

精确度/召回率/F1值

精确度&召回率

精确度/召回率/F1值在<统计学习方法>和周志华的<机器学习>中都有详细介绍,以下参考维基百科中Precision and recall的说明:

如下图所示,假设有若干张图片,其中12张是狗的图片其余是猫的图片.现在利用程序去识别狗的图片,结果在识别出的8张图片中有5张是狗的图片,3张是猫的图片(属于误报).

图中,实心小圆代表狗的图片,虚心小圆代表猫的图片,圆形区域代表识别结果.

则该程序的精度precision=5/8,召回率recall=5/12。

当一个搜索引擎返回30个页面时,只有20页是相关的,而没有返回40个额外的相关页面,其精度为20/30 = 2/3,而其召回率为20/60 = 1/3。在这种情况下,精确度是“搜索结果有多大用处”,而召回是“结果如何完整”。

F1 F1值

F1 F1值是精确度和召回率的调和平均值:

2F1=1P+1R 2F1=1P+1R

F1=2P×RP+R F1=2P×RP+R

精确度和召回率都高时, F1 F1值也会高. F1 F1值在1时达到最佳值(完美的精确度和召回率),最差为0.在二元分类中, F1 F1值是测试准确度的量度。

示例说明:

from sklearn.metrics import classification_report
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
print(classification_report(y_true, y_pred))

输出:

            precision    recall  f1-score   support

          0       0.50      1.00      0.67         1
1 0.00 0.00 0.00 1
2 1.00 0.67 0.80 3 avg / total 0.70 0.60 0.61 5

其中

真实值 预测值
0 0
1 0
2 2
2 2
2 1

对示例程序中的结果:

  precision    recall  f1-score   support

0       0.50      1.00      0.67         1
1 0.00 0.00 0.00 1
2 1.00 0.67 0.80 3

第一行的计算: 
即0的预测情况:真实值中有1个0,预测值中有2个0,其中1个预测正确,1个预测错误.如图所示:

则, 
 P=12=0.5 P=12=0.5 
 R=11=1 R=11=1 
 F1=212×112+1=0.67 F1=212×112+1=0.67

第二行的计算: 
即1的预测情况:真实值中有1个1,预测值中有1个1,且预测错误.如图所示:

则, 
 P=01=0 P=01=0 
 R=01=0 R=01=0 
 F1=0 F1=0

第三行的计算: 
即2的预测情况:真实值中有3个2,预测值中有2个2,且预测正确.如图所示:

则, 
 P=22=1 P=22=1 
 R=23=0.67 R=23=0.67 
 F1=21×231+23+=0.8

机器学习classification_report方法及precision精确率和recall召回率 说明的更多相关文章

  1. 分类的性能评估:准确率、精确率、Recall召回率、F1、F2

    import numpy as np import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer f ...

  2. Recall(召回率);Precision(准确率);F1-Meature(综合评价指标);true positives;false positives;false negatives.

    Recall(召回率);Precision(准确率);F1-Meature(综合评价指标);在信息检索(如搜索引擎).自然语言处理和检测分类中经常会使用这些参数. Precision:被检测出来的信息 ...

  3. Recall(召回率);Precision(准确率);F1-Meature(综合评价指标);true positives;false positives;false negatives..

    转自:http://blog.csdn.net/t710smgtwoshima/article/details/8215037   Recall(召回率);Precision(准确率);F1-Meat ...

  4. 混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值

    准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前 ...

  5. 精确率precession和召回率recall

    假设有两类样本,A类和B类,我们要衡量分类器分类A的能力. 现在将所有样本输入分类器,分类器从中返回了一堆它认为属于A类的样本. 召回率:分类器认为属于A类的样本里,真正是A类的样本数,占样本集中所有 ...

  6. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure

    yu Code 15 Comments  机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accu ...

  7. 准确率(accuracy),精确率(Precision),召回率(Recall)和综合评价指标(F1-Measure )----转

    原文:http://blog.csdn.net/t710smgtwoshima/article/details/8215037   Recall(召回率);Precision(准确率);F1-Meat ...

  8. 机器学习 F1-Score 精确率 - P 准确率 -Acc 召回率 - R

    准确率 召回率 精确率 : 准确率->accuracy, 精确率->precision. 召回率-> recall. 三者很像,但是并不同,简单来说三者的目的对象并不相同. 大多时候 ...

  9. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

    首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是0-1损失时测试数据集上的准确率. 下面在介绍时使用一下例子: 一个 ...

随机推荐

  1. C#之使用AutoUpdater自动更新客户端

    安装NuGet包 在Visio studio中右击解决方案,选择管理NuGet包,搜索安装Autoupdater.NET.Official. 工作简介 从服务器下载包含更新文件的XML文件,从中获取软 ...

  2. CentOS 7 - 最小化安装后,安装GNOME!!

    CentOS 7的最小化安装,并没有安装任何X Window,GNOME是比较好的一个X Window,我决定安装GNOME! 通过yum grouplist命令,我发现GNOME已经处于可以安装列表 ...

  3. POI2014 RAJ-Rally

    Description 给定一个\(N\)个点\(M\)条边的\(DAG(N,M\leq10^6)\),边权为\(1\).删去一个点,使剩余图中的最长路径最短,求删去的点和最长路径长度. Soluti ...

  4. 如何修改静态IP地址和动态IP地址

    打开控制面板,一般在电脑的菜单栏能找到,win8和win10可以使用快捷键(win键+X键),找不到的朋友可以搜索一下.   进入到网络和共享中心,点击更改适配器设置.   这里显示的是电脑所以的网络 ...

  5. iOS-实现对象拷贝【对象拷贝】

    对象引用 NSCopying 代理 .h @interface xk : NSObject <NSCopying> @property (nonatomic, copy) NSString ...

  6. Docker学习--Linux基础准备篇

    1.docker命令不需要附带敲sudo的解决办法 由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用 ...

  7. IIS 8 配置错误

    1) ProtocolException: The remote server returned an unexpected response: (405) Method Not Allowed Th ...

  8. 自动安装zabbix_agent脚本 -- python2

    #!/usr/bin/env python # -*- coding: utf-8 -*- import os ZABBIX_SERVER_IP='10.171.100.28' if os.path. ...

  9. Opserver 初探一《Opserver的搭建》

    Opserver 是Stack Overflow的开源监控产品.stackoverflow网站是基于asp.net开发的,具体采用的软硬件配置可以查看<StackOverflow 这么大,究竟用 ...

  10. windows下如何下载并安装Python

    1.打开Python官网,点download中的windows(或者打开网址https://www.python.org/downloads/windows/) 2.下载exe后缀的可执行文件,根据自 ...