没错,只需为TensorFlow模型和数据集提供指针,What-If
Tool就能给出一个可用来探索模型结果的可交互的视觉界面。

新智元将于9月20日在北京国家会议中心举办AI WORLD
2018世界人工智能峰会,MIT物理教授、未来生命研究所创始人、《生命3.0》作者Max
Tegmark,将发表演讲《我们如何利用AI,而不是被其压制》
,探讨如何直面AI军事化和杀人武器的出现,欢迎到现场交流!

代码

在清楚了AUC值的计算原理后,我们再来看看如何在代码中实现它。通常很多的机器学习工具都封装了模型指标的计算,当然也包括AUC值。这里我们来一起看下scikit-learnAUC的计算方式,如下所示:

>>> import numpy as np
>>> from sklearn.metrics import roc_auc_score
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> roc_auc_score(y_true, y_scores)
0.75

可以看出,使用scikit-learn工具提供的roc_auc_score函数计算AUC值相当简单,只需要提供样本的实际标签和预测值这两个变量即可,大大方便了我们的使用,真心感谢这些开源软件的作者们!

我们建立一个模型后,计算指标,从指标获取反馈,再继续改进模型,直到达到理想的准确度。在预测之前检查模型的准确度至关重要,而不应该建立一个模型后,就直接将模型应用到看不见的数据上。

功能五:按相似度排列示例

今天,我们正式发布What-If工具,该工具是开源的TensorBoard
Web应用程序的一项新功能,它允许用户在不编写代码的情况下分析机器学习模型。
What-If工具给出了TensorFlow模型和数据集的指针,提供了一个交互式可视化界面,用于探索模型结果。

参考

ROC曲线维基百科
张伟楠老师课件
机器学习和统计里面的auc怎么理解? –
知乎

回归:

传送门

用户还可以探索不同分类阈值的影响,同时考虑不同数值公平性标准等约束条件。下图所示为微笑探测器模型的结果,该模型在开源CelebA数据集上训练,数据集是已标记的名人面部图像。

示例

这里引用上海交大张伟楠老师机器学习课件中的例子来说明:

mgm娱乐登录地址 1

AUC计算示例

如上图所示,我们有8个测试样本,模型的预测值(按大小排序)和样本的真实标签如右表所示,绘制ROC曲线的整个过程如下所示:

  1. 令阈值等于第一个预测值0.91,所有大于等于0.91的预测值都被判定为阳性,此时TPR=1/4,FPR=0/4,所有我们有了第一个点(0.0,0.25)
  2. 令阈值等于第二个预测值0.85,所有大于等于0.85的预测值都被判定为阳性,这种情况下第二个样本属于被错误预测为阳性的阴性样本,也就是FP,所以TPR=1/4,FPR=1/4,所以我们有了第二个点(0.25,0.25)
  3. 按照这种方法依次取第三、四…个预测值作为阈值,就能依次得到ROC曲线上的坐标点(0.5,0.25)、(0.75,0.25)…(1.0,1.0)
  4. 将各个点依次连接起来,就得到了如图所示的ROC曲线
  5. 计算ROC曲线下方的面积为0.75,即AUC=0.75
混淆矩阵:

mgm娱乐登录地址 2

from sklearn.metrics import confusion_matrix
pipe_svc.fit(X_train, y_train)
y_pred = pipe_svc.predict(X_test)
confmat = confusion_matrix(y_true=y_test, y_pred=y_pred)
print(confmat)

[[71  1]
[ 2 40]]

单纯用 错误率,精度 是无法知道下面的问题时:

查准率
应用场景-当你想知道“挑出的西瓜中有多少比例是好瓜”

mgm娱乐登录地址 3

from sklearn.metrics import precision_score
from sklearn.metrics  import recall_score, f1_score
print('Precision: %.3f' % precision_score(y_true=y_test, y_pred=y_pred))

Precision: 0.976

查全率:
应用场景-当你想知道“所有好瓜盅有多少比例被挑出来了”

mgm娱乐登录地址 4

print('Recall: %.3f' % recall_score(y_true=y_test, y_pred=y_pred))

Recall: 0.952

P-R 图:
当一个学习器的 P-R 曲线被另一个学习器的包住,那么后者性能优于前者。
有交叉时,需要在具体的查准率或者查全率下进行比较。

mgm娱乐登录地址 5

平衡点 (Break Event Point BEP):
即上图中三个红点。
综合考虑查准率,查全率的度量
当 查准率=查全率 时的点,谁大谁比较优。

F1 度量:
也是综合考虑查准率,查全率的度量,比 BEP 更常用:

mgm娱乐登录地址 6

print('F1: %.3f' % f1_score(y_true=y_test, y_pred=y_pred))

F1: 0.964

Fβ:
可以表达对查准率,查全率的不同重视度,
β > 1 则查全率有更大影响,β < 1 则查准率有更大影响,β = 1 则为
F1。

mgm娱乐登录地址 7


mgm娱乐登录地址 8

用户只需单击一个按钮,就可以将数据点与模型预测不同结果的最相似点进行比较。我们称这些点为“Counterfactuals”,可以显示出预测模型的决策边界。用户也可以手动编辑数据点,并探索模型预测的变化。

引言

在机器学习领域,AUC值经常用来评价一个二分类模型的训练效果,对于许多机器学习或者数据挖掘的从业者或在校学生来说,AUC值的概念也经常被提起,但由于大多数时候我们都是借助一些软件包来训练机器学习模型,模型评价指标的计算往往被软件包所封装,因此我们常常会忽略了它们的具体意义,这在有些时候会让我们对于手头正在进行的任务感到困惑。笔者也曾遇到类似的问题,因此希望借由本文来梳理下AUC值的意义与计算方法,通过实际的例子帮助读者加深理解,同时给出了使用scikit-learn工具库计算AUC值的方法,供各位参考。

分类:

在谷歌官方博客上,研究人员还发布了用预训练模型进行的一组演示,比如检测错误分类的原因,评估二元分类模型的公平性和调查不同子数据集中模型的表现等。可以移步官方博客查看更多,博客地址:

原标题:测试机器学习模型不用写代码!谷歌“what-if”工具轻松搞定

定义

AUC的全称是Area under the Curve of
ROC
,也就是ROC曲线下方的面积。这里出现了另一个概念,就是ROC曲线。那么ROC曲线是个什么东西呢?我们参看下维基百科上的定义:在信号检测理论中,接收者操作特征曲线(receiver
operating characteristic
curve
,或者叫ROC曲线)是一种坐标图式的分析工具,用于 (1)
选择最佳的信号侦测模型、舍弃次佳的模型。 (2)
在同一模型中设定最佳阈值。这个概念最早是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具。概括来说,可以把ROC曲线理解为一种用于统计分析的图表工具。

那么具体到机器学习的理论中,ROC曲线该怎么理解呢?首先,需要指出的是,ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,比如:(阳性/阴性)(有病/没病)(垃圾邮件/非垃圾邮件)。在二分类问题中,数据的标签通常用(0/1)来表示,在模型训练完成后进行测试时,会对测试集的每个样本计算一个介于0~1之间的概率,表征模型认为该样本为阳性的概率,我们可以选定一个阈值,将模型计算出的概率进行二值化,比如选定阈值=0.5,那么当模型输出的值大于等于0.5时,我们就认为模型将该样本预测为阳性,也就是标签为1,反之亦然。选定的阈值不同,模型预测的结果也会相应地改变。二元分类模型的单个样本预测有四种结果:

  1. 真阳性(TP):判断为阳性,实际也是阳性。
  2. 伪阳性(FP):判断为阴性,实际却是阳性。
  3. 真阴性(TN):判断为阴性,实际也是阴性。
  4. 伪阴性(FN):判断为阴性,实际却是阳性。

这四种结果可以画成2 × 2的混淆矩阵:

mgm娱乐登录地址 9

二阶混淆矩阵

有了混淆矩阵,就可以定义ROC曲线了。ROC曲线将假阳性率(FPR)定义为
X 轴,真阳性率(TPR)定义为 Y 轴。其中:

  • TPR:在所有实际为阳性的样本中,被正确地判断为阳性的样本比率。
  • FPR:在所有实际为阴性的样本中,被错误地判断为阳性的样本比率。
  • TPR = TP / (TP + FN)
  • FPR = FP / (FP + TN)

给定一个二分类模型和它的阈值,就可以根据所有测试集样本点的真实值和预测值计算出一个
(X=FPR, Y=TPR)
坐标点,这也就是绘制单个点的方法。那整条ROC曲线又该怎么画呢?具体方法如下:

在我们训练完一个二分类模型后,可以使用该模型对测试集中的全部样本点计算一个对应的概率值,每个值都介于0~1之间。假设测试集有100个样本点,我们可以对这100个样本的预测值从高到低排序,然后依次取每个值作为阈值,一旦阈值确定我们就可以绘制ROC曲线上的一个点,按照这种方法依次将100个点绘制出来,再将各个点依次连接起来,就得到了我们想要的ROC曲线!

然后再回到最初的问题,AUC值其实就是ROC曲线下方所覆盖的面积,当我们绘制出ROC曲线之后,AUC的值自然也就计算好啦。

二分类 and 多分类:

错误率

mgm娱乐登录地址 10

精度

mgm娱乐登录地址 11


对于二分类模型来说,这个工具可以将你的数据集分成子数据集,继而探索不同算法公平性约束(fairness
constraints)的影响。

检测错误分类:多类分类模型,模型根据对植物的花的四次观测来预测植物的种类。What-if工具有助于显示模型的决策边界,弄清导致错误分类的原因。

总结

看到这里的小伙伴们是不是对AUC值的概念有了更好的理解呢。总的来说,AUC值就是一个用来评价二分类模型优劣的常用指标,AUC值越高通常表明模型的效果越好,在实际使用中我们可以借助软件包的相应函数进行快速计算。如果各位还有一些问题或者是对文章中的某些部分有疑问,欢迎在评论区讨论。

均方误差:

mgm娱乐登录地址 12

mgm娱乐登录地址 13

其中 D 为数据分布,p 为概率密度函数。

from sklearn.metrics import mean_squared_error
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mean_squared_error(y_true, y_pred)

0.375

mgm娱乐登录地址 14

在这种情况下,对于选定的数据点,模型预测该人年收入超过5万美元的信度为73%。该工具自动定位数据集中最相似的人,模型预测其年收入低于5万美元,然后将选定数据点和与之最相似、但预测结果相反的数据点进行并排比较。如下图所示,二者只有在年龄和职业上存在微小的差异,但模型的预测结果已经完全相反了。

代价敏感

现实任务中,当不同类型的错误具有不同的影响后果时,它们的代价也是不一样的。

此时,可以设定
代价矩阵 cost matrix:
如果将第 0 类预测为 第 1 类造成的损失更大,则 cost01 >
cost10,相反将第 1 类预测为 第 0 类造成的损失更大,则 cost01 < cost10
:

mgm娱乐登录地址 15

则带有“代价敏感”的错误率为:

mgm娱乐登录地址 16

其中 0 为正类,1 为反类,D+ 为正例子集合,D- 为反例子集合。

代价曲线 cost curve:
非均等代价下,反应学习器的期望总体代价。
横轴为取值为[0,1]的正例概率代价:

mgm娱乐登录地址 17

纵轴为取值为[0,1]的归一化代价:

mgm娱乐登录地址 18

其中 p 为正例的概率,FPR = 1 – TPR。

mgm娱乐登录地址 19


资料:
机器学习
Python Machine Learning


推荐阅读
历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

mgm娱乐登录地址 20

编辑:大明

One vs. All (OvA) 分类问题

这时会在 n 个二分类问题上综合考虑查准率,查全率。

宏~ :先在每个混淆矩阵上计算率,再求平均

宏查准率

mgm娱乐登录地址 21

宏查全率

mgm娱乐登录地址 22

宏 F1

mgm娱乐登录地址 23

微~ :先将各个混淆矩阵上对应元素求平均,再计算率

微查准率

mgm娱乐登录地址 24

微查全率

mgm娱乐登录地址 25

微 F1

mgm娱乐登录地址 26


ROC :
反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。

纵轴为 TPR 真正例率,预测为正且实际为正的样本占所有正例样本的比例
横轴为 FPR 假正例率。预测为正但实际为负的样本占所有负例样本的比例

mgm娱乐登录地址 27

对角线对应的是 “随机猜想”

mgm娱乐登录地址 28

当一个学习器的 ROC 曲线被另一个学习器的包住,那么后者性能优于前者。
有交叉时,需要用 AUC 进行比较。

AUC:
ROC 曲线下的面积

mgm娱乐登录地址 29

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
roc_auc_score(y_true, y_scores)

0.75

mgm娱乐登录地址 30

对Counterfactuals的比较。二人只有在年龄和职业上存在微小的差异,但模型的预测结果已经完全相反

二分类

What-If Tool介绍主页:

调查模型在不同子群体中的表现:回归模型可以用于根据人口普查信息预测受试者的年龄。What-if工具能显示出模型在不同子群体中的相对表现,以及不同特征如何单独影响预测结果。该模型使用美国人口普查数据集进行训练。


mgm娱乐登录地址 31

下面详细介绍What-If工具的两个功能。

今天先来简单介绍几种回归和分类常用的评估方法。

构建高效的机器学习系统,需要提出并解决许多问题。仅仅训练模型然后就放着不管是远远不够的。优秀的机器学习从业者要像侦探一样,时刻注意探索如何更好地理解构建的模型:数据点的变化将对模型的预测结果造成什么影响?同一个模型对不同的群体会有哪些不同的表现?用来测试模型的数据集的多样化程度如何等等。

评估指标 Evaluation metrics 可以说明模型的性能,辨别模型的结果。

相关文章

网站地图xml地图