sklearn.metrics中的评估方法介绍(accuracy_score, recall_score, roc_curve, roc_auc_score, confusion_matrix,classification_report)

accuracy_score
分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。

形式:
sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

normalize:默认值为True,返回正确分类的比例;如果为False,返回正确分类的样本数

————————————————

recall_score
召回率 =提取出的正确信息条数 /样本中的信息条数。通俗地说,就是所有准确的条目有多少被检索出来了。

形式:
klearn.metrics.recall_score(y_true, y_pred, labels=None, pos_label=1,average=‘binary‘, sample_weight=None)

参数average : string, [None, ‘micro’, ‘macro’(default), ‘samples’, ‘weighted’]

将一个二分类matrics拓展到多分类或多标签问题时,我们可以将数据看成多个二分类问题的集合,每个类都是一个二分类。接着,我们可以通过跨多个分类计算每个二分类metrics得分的均值,这在一些情况下很有用。你可以使用average参数来指定。

macro:计算二分类metrics的均值,为每个类给出相同权重的分值。当小类很重要时会出问题,因为该macro-averging方法是对性能的平均。另一方面,该方法假设所有分类都是一样重要的,因此macro-averaging方法会对小类的性能影响很大。

weighted:对于不均衡数量的类来说,计算二分类metrics的平均,通过在每个类的score上进行加权实现。

micro:给出了每个样本类以及它对整个metrics的贡献的pair(sample-weight),而非对整个类的metrics求和,它会每个类的metrics上的权重及因子进行求和,来计算整个份额。Micro-averaging方法在多标签(multilabel)问题中设置,包含多分类,此时,大类将被忽略。

samples:应用在multilabel问题上。它不会计算每个类,相反,它会在评估数据中,通过计算真实类和预测类的差异的metrics,来求平均(sample_weight-weighted)

average:average=None将返回一个数组,它包含了每个类的得分.
————————————————

roc_curve
ROC曲线指受试者工作特征曲线/接收器操作特性(receiver operating characteristic,ROC)曲线,是反映灵敏性和特效性连续变量的综合指标,是用构图法揭示敏感性和特异性的相互关系,它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真正例率(也就是灵敏度)(True Positive Rate,TPR)为纵坐标,假正例率(1-特效性)(False Positive Rate,FPR)为横坐标绘制的曲线。

ROC观察模型正确地识别正例的比例与模型错误地把负例数据识别成正例的比例之间的权衡。TPR的增加以FPR的增加为代价。ROC曲线下的面积是模型准确率的度量,AUC(Area under roccurve)。

纵坐标:真正率(True Positive Rate , TPR)或灵敏度(sensitivity)

TPR = TP /(TP + FN)  (正样本预测结果数 / 正样本实际数)

横坐标:假正率(False Positive Rate , FPR)

FPR = FP /(FP + TN) (被预测为正的负样本结果数 /负样本实际数)

形式:
sklearn.metrics.roc_curve(y_true,y_score, pos_label=None, sample_weight=None, drop_intermediate=True)

该函数返回这三个变量:fpr,tpr,和阈值thresholds;

这里理解thresholds:

分类器的一个重要功能“概率输出”,即表示分类器认为某个样本具有多大的概率属于正样本(或负样本)。

“Score”表示每个测试样本属于正样本的概率。

接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。其实,我们并不一定要得到每个测试样本是正样本的概率值,只要得到这个分类器对该测试样本的“评分值”即可(评分值并不一定在(0,1)区间)。评分越高,表示分类器越肯定地认为这个测试样本是正样本,而且同时使用各个评分值作为threshold。我认为将评分值转化为概率更易于理解一些。
————————————————

Auc计算AUC值,其中x,y分别为数组形式,根据(xi,yi)在坐标上的点,生成的曲线,然后计算AUC值;

形式:

sklearn.metrics.auc(x, y, reorder=False)

————————————————

roc_auc_score
直接根据真实值(必须是二值)、预测值(可以是0/1,也可以是proba值)计算出auc值,中间过程的roc计算省略。

形式:
sklearn.metrics.roc_auc_score(y_true, y_score, average=‘macro‘, sample_weight=None)

average : string, [None, ‘micro’, ‘macro’(default), ‘samples’, ‘weighted’]
————————————————

confusion_matrix

形式:
sklearn.metrics.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)

返回一个混淆矩阵;

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

原文地址:https://www.cnblogs.com/liunaiming/p/12079307.html

时间: 2025-01-08 18:02:02

sklearn.metrics中的评估方法介绍(accuracy_score, recall_score, roc_curve, roc_auc_score, confusion_matrix,classification_report)的相关文章

sklearn.metrics中的评估方法

1.confusion_matrix 利用混淆矩阵进行评估 混淆矩阵说白了就是一张表格 复现代码 # Import necessary modules from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix # Create training and test set X_train, X_test, y_train, y_test = train_test_sp

JAVA Metrics 度量工具使用介绍1

Java Metric使用介绍1 Metrics是一个给JAVA提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同一时候,Metrics可以非常好的跟Ganlia.Graphite结合,方便的提供图形化接口. 以下简介下Metrics怎样使用. Maven地址: 仅仅须要添加metrics-core就可以使用 <dependency> <groupId>com.yammer.metrics</groupId> <a

[Sqlite3].help中的命令介绍

sqlite的安装1. 首先是下载sqlite,可以该页面下载:http://www.sqlite.org/download.html当前的最新版本为:sqlite-shell-win32-x86-3070701.zip这个是windows下sqlite的命令行管理工具,用它可以管理sqlite数据库文件,同时最好把文档也下载下来,里面包含了详细的sqlite的使用说明:sqlite-doc-3070701.zip 2. sqlite无需任何配置和安装,只要将下载下来的shell文件解压到任何你

ASP.NET MVC4中的App_start中BundleConfig的介绍使用

在BundleConfig.cs中,指定CSS和JS,主要用来压缩JS和CSS   在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 这里仅简单记录下如

Halcon的HWindowControl控件在WinForm程序中的使用介绍(重点解决图片缩放的问题)

 Halcon的HWindowControl控件在WinForm程序中的使用介绍(重点解决图片缩放的问题) 2016-12-04 20:11 362人阅读 评论(4) 收藏 举报  分类: Halcon 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] HWindowControl控件初步使用 最近在学习新的视觉处理工具–Halcon软件包,本人学习的主要是HDevelop.Halcon与C#混编以及Halcon与C++混编.这里再多缀一句:11版本后C++编程,包含的是h

LTE中的PDCCH介绍

PDCCH中承载的是DCI(Downlink Control Information),包含一个或多个UE上的资源分配和其他的控制信息.在LTE中上下行的资源调度信息(MCS, Resource allocation等等的信息)都是由PDCCH来承载的.一般来说,在一个子帧内,可以有多个PDCCH.UE需要首先解调PDCCH中的DCI,然后才能够在相应的资源位置上解调属于UE自己的PDSCH(包括广播消息,寻呼,UE的数据等) 前面提到过,LTE中PDCCH在一个子帧内(注意,不是时系)占用的符

在HDInsight中的Hadoop介绍

在HDInsight中的Hadoop介绍 概览 Azure的HDInsight是,部署和规定的Apache?Hadoop?集群在云中,提供用于管理,分析和大数据报告软件框架中的服务. 大数据 数据被描写叙述为"大数据",以表明它被收集在以往升级卷,以越来越高的速度,并为一个扩大各种非结构化格式和可变语义语境.大数据的收集并不正确企业自身提供的价值. 对于大数据在可操作智能或洞察力的形式提供价值.不仅要正确的问题问及相关的问题,数据收集,数据必须能够訪问.清洗.分析,然后在一个实用的方式

03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

 1 PersonTestMapper.xml中的内容如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace:命名空间

CSS中behavior属性语法介绍

本文和大家重点讨论一下CSS中behavior属性语法的使用,在进行CSS网页布局的时候,我们经遇到刷新要保留表单里内容的时候,习惯的做法使用cookie,但是那样做实在是很麻烦,CSS中的behavior就为我们很好的解决了这个问题. CSS属性behavior语法 在进行CSS网页布局的时候,我们经遇到刷新要保留表单里内容的时候,习惯的做法使用cookie,但是那样做实在是很麻烦,css中的behavior就为我们很好的解决了这个问题.今天就向大家介绍CSS属性behavior的语法. be