测试机器学习模型不用写代码,无需写代码

原标题:无需写代码!谷歌(谷歌(Google))推出机器学习模型分析神器,代号What-If

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

引言

在机器学习园地,AUC值常常用来评价一个二分类模型的教练成效,对于许多机器学习或者数额挖掘的从业者或在校学员来说,AUC值的概念也时时被提起,但出于多数时候咱们都是依靠一些软件包来练习机器学习模型,模型评价目的的测算往往被软件包所封装,因而大家日常会忽略了它们的现实性意思,那在稍微时候会让大家对此手头正在开展的天职感到纳闷。作者也曾遭遇类似的题材,因而希望借由正文来梳理下AUC值的意思与计量办法,通过实际的例证辅助读者加深明白,同时提交了采纳scikit-learn工具库总结AUC值的办法,供各位参考。

评估目的 伊娃luation metrics 可以证实模型的习性,辨别模型的结果。

铜灵 编译整理

亚洲必赢登录 1

定义

AUC的完备是Area under the Curve of
ROC
,也就是ROC曲线下方的面积。这里出现了另一个概念,就是ROC曲线。那么ROC曲线是个如何事物吗?大家参看下维基百科上的概念:在信号检测理论中,接收者操作特征曲线(receiver
operating characteristic
curve
,或者叫ROC曲线)是一种坐标图式的解析工具,用于 (1)
拔取最佳的信号侦测模型、舍弃次佳的模子。 (2)
在平等模型中设定最佳阈值。那一个概念最早是由世界二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具。概括来说,可以把ROC曲线通晓为一种用于总结分析的图形工具。

那么具体到机械学习的辩论中,ROC曲线该怎么掌握呢?首先,必要提出的是,ROC解析的是二元分类模型,也就是出口结果只有两种类型的模型,比如:(阴性/阴性)(有病/没病)(垃圾邮件/非垃圾邮件)。在二分类难题中,数据的标签平时用(0/1)来代表,在模型磨练达成后展开测试时,会对测试集的每个样本统计一个介于0~1之间的几率,表征模型认为该样本为中性(neuter gender)的几率,大家可以选定一个阈值,将模型统计出的几率举行二值化,比如选定阈值=0.5,那么当模型输出的值当先等于0.5时,大家就觉得模型将该样本预测为中性(neuter gender),也就是标签为1,反之亦然。选定的阈值不一致,模型预测的结果也会相应地转移。二元分类模型的单个样本预测有四种结果:

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

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

亚洲必赢登录 2

二阶混淆矩阵

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

  • TPR:在富有实际为中性(neuter gender)的范本中,被科学地认清为阳性的样本比率。
  • FPR:在装有实际为中性(neuter gender)的样书中,被破绽百出地判定为中性(neuter gender)的样本比率。
  • TPR = TP / (TP + FN)
  • FPR = FP / (FP + TN)

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

在大家陶冶完一个二分类模型后,可以选用该模型对测试集中的任何样本点统计一个相应的票房价值值,每个值都介于0~1之间。假如测试集有100个样本点,大家得以对那100个样本的预测值从高到低排序,然后挨家挨户取每个值作为阈值,一旦阈值确定我们就足以绘制ROC曲线上的一个点,依据那种格局依次将100个点绘制出来,再将逐一点依次连接起来,就收获了我们想要的ROC曲线!

下一场再再次回到最初的题材,AUC值其实就是ROC测试机器学习模型不用写代码,无需写代码。曲线下方所覆盖的面积,当我们绘制出ROC曲线之后,AUC的值自然也就总计好啊。

咱俩树立一个模型后,计算目的,从目标获得反馈,再持续鼎新模型,直到达到可观的准确度。在展望从前检查模型的准确度至关主要,而不应当建立一个模子后,就径直将模型应用到看不见的数码上。

今天,谷歌(Google)推出了已开源的TensorFlow可视化工具TensorBoard中一项新功能:What-If
Tool,用户可在不编写程序代码的场地下分析机器学习(ML)模型。

倒计时**8**天

示例

此处引用巴黎武大张伟楠先生机器学习课件中的例子来表明:

亚洲必赢登录 3

AUC总计示例

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

  1. 令阈值等于第三个预测值0.91,所有大于等于0.91的预测值都被判定为中性(neuter gender),此时TPR=1/4,FPR=0/4,所有大家有了首个点(0.0,0.25)
  2. 令阈值等于首个预测值0.85,所有大于等于0.85的预测值都被判定为阴性,那种场地下首个样本属于被错误预测为中性(neuter gender)的中性(neuter gender)样本,也就是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

今日先来大约介绍三种回归和归类常用的评估方法。

不用写代码?

新智元将于四月20日在东京(Tokyo)国家会议中央设置AI WORLD
2018世界人工智能峰会,MIT物理助教、未来生命切磋所开创者、《生命3.0》小编MaxTegmark,将发表解说《大家怎么着行使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值万分简单,只须要提供样本的骨子里标签和预测值那七个变量即可,大大有利于了俺们的选取,真心感谢那些开源软件的小编们!


毋庸置疑,只需为TensorFlow模型和数据集提供指针,What-If
Tool就能交付一个可用来研究模型结果的可互相的视觉界面。

总结

看到这里的小伙伴们是或不是对AUC值的定义有了更好的知晓啊。总的来说,AUC值就是一个用来评论二分类模型优劣的常用目标,AUC值越MediaTek常申明模型的成效越好,在实际应用中大家可以依靠软件包的照应函数举办快捷计算。如若各位还有一对标题如故是对小说中的某些部分有疑点,欢迎在评论区琢磨。

回归:

亚洲必赢登录 4

来源:Google AI

参考

ROC曲线维基百科
张伟楠先生课件
机械学习和计算里面的auc怎么知道? –
虎扑

均方误差:

亚洲必赢登录 5

亚洲必赢登录 6

中间 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

250张人脸和在模型中检测微笑后的结果

编辑:大明

分类:

What-If
Tool里功用很多,包罗自动用Facets将数据集可视化,也有从数据汇总手动编辑示例并查阅更改效果的作用,还可以自动生成部分关系图,突显模型预测随着单个特征的改动而更改的势头。

【新智元导读】谷歌 AI推出“what-if
”工具,用户完全不需求编制代码就能分析机器学习模型。该工具提供交互式可视化界面,用户能够讨论并比较模型结果,可以飞快地发现模型中的错误。

二分类 and 多分类:

错误率

亚洲必赢登录 7

精度

亚洲必赢登录 8


可是,那还不是What-If Tool的万事实力。

构建高效的机械学习种类,要求提议并缓解许多标题。仅仅训练模型然后就放着不管是远远不够的。卓绝的机械学习从业者要像侦探一样,时刻检点探索怎么样更好地领悟构建的模子:数据点的变通将对模型的预测结果造成如何震慑?同一个模子对差其余部落会有如何不一致的表现?用来测试模型的数据集的多样化程度如何等等。

二分类

7大功能

要应对这一个题目并不便于。要回应那些“若是”难题,平常要编写自定义的三遍性代码来分析特定模型。那几个进度不仅作用低下,同时除了程序员,其余人很难参加革新机器学习模型的进度。

混淆矩阵:

亚洲必赢登录 9

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]]

一味用 错误率,精度 是无力回天驾驭上面的题目时:

查准率
选拔场景-当你想精晓“挑出的西瓜中有稍许比例是好瓜”

亚洲必赢登录 10

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

查全率:
接纳场景-当你想知道“所有好瓜盅有稍许比例被挑出来了”

亚洲必赢登录 11

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

Recall: 0.952

P-R 图:
当一个学习器的 P-R 曲线被另一个学习器的包住,那么后者性能优越前者。
亚洲必赢登录 ,有陆续时,需求在现实的查准率或者查全率下展开比较。

亚洲必赢登录 12

平衡点 (Break Event Point BEP):
即上图中七个红点。
综述考虑查准率,查全率的心胸
当 查准率=查全率 时的点,什么人大哪个人相比较优。

F1 度量:
也是汇总考虑查准率,查全率的襟怀,比 BEP 更常用:

亚洲必赢登录 13

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

F1: 0.964

Fβ:
可以发挥对查准率,查全率的不比器重度,
β > 1 则查全率有更大影响,β < 1 则查准率有更大影响,β = 1 则为
F1。

亚洲必赢登录 14


What-If Tool主要有七大职能,不亮堂有没有您须要的那一款:

谷歌(Google) AI
PAIR陈设的一个重中之重就是让更常见的人群可以更便民地对机械学习种类开展自我批评、评估和调剂。

One vs. All (OvA) 分类难点

那儿会在 n 个二分拣难点上综合考虑查准率,查全率。

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

宏查准率

亚洲必赢登录 15

宏查全率

亚洲必赢登录 16

宏 F1

亚洲必赢登录 17

微~ :先将次第混淆矩阵上相应元素求平均,再统计率

微查准率

亚洲必赢登录 18

微查全率

亚洲必赢登录 19

微 F1

亚洲必赢登录 20


ROC :
呈现敏感性和特异性再而三变量的汇总目标,roc曲线上每个点反映着对同一信号刺激的感受性。

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

亚洲必赢登录 21

对角线对应的是 “随机臆度”

亚洲必赢登录 22

当一个学习器的 ROC 曲线被另一个学习器的包住,那么后者性能优越前者。
有陆续时,须要用 AUC 举办比较。

AUC:
ROC 曲线下的面积

亚洲必赢登录 23

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

效益一:可视化估算结果

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

代价敏感

切切实实任务中,当差异类型的荒唐具有分化的熏陶结果时,它们的代价也是不均等的。

那时候,能够设定
代价矩阵 cost matrix:
比方将第 0 类预测为 第 1 类造成的损失更大,则 cost01 >
cost10,相反将第 1 类预测为 第 0 类造成的损失更大,则 cost01 < cost10
:

亚洲必赢登录 24

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

亚洲必赢登录 25

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

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

亚洲必赢登录 26

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

亚洲必赢登录 27

内部 p 为正例的几率,FPR = 1 – TPR。

亚洲必赢登录 28


资料:
机械学习
Python Machine Learning


引进阅读
野史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
或者可以找到您想要的:
[入门难题][TensorFlow][纵深学习][火上加油学习][神经网络][机械学习][自然语言处理][聊天机器人]

基于揣摸结果的例外,你的演示会被分为分歧的颜料,之后可用混淆矩阵和其余自定义格局开展处理,从分歧特色的角度浮现估量结果。

亚洲必赢登录 29

亚洲必赢登录 30

What-If工具突显一组250张面部图片及其检测微笑模型的结果

功能二:编辑一个数据点,看模型表现怎么着

What-If工具成效强大,可以行使Facets自动显示数据集,从数额集手动编辑示例并查阅更改的法力,仍可以自动生成部分依赖图(partial
dependence
plots),显示模型的前瞻结果随任何单个功效的改变而变化的意况。

你可以编制、添加或删除任何选定数据点的性状或特色值,然后运行臆度来测试模型性能,也可上传全新示例。

亚洲必赢登录 31

亚洲必赢登录 32

探索数据点上的What-if情景

职能三:发掘单个特征的效益

上面详细介绍What-If工具的三个职能。

可以用来探究为当选数据点中的单个特征自动生成的图,突显特征使得值分裂时推断结果的浮动。

只需一键,自动相比较数据点与模型预测最相似点

亚洲必赢登录 33

用户只需单击一个按钮,就可以将数据点与模型预测差距结果的最相似点举行比较。大家称那一个点为“Counterfactuals”,可以突显出预测模型的裁决边界。用户也能够手动编辑数据点,并商讨模型预测的变动。

功效四:探索反事实示例

在底下的截图中,该工具用于二进制分类模型,该模型依照美利坚联邦合众国人口普查数据集的集体人口普查数据,预测一个人的年收入是还是不是超过5万美金。那是机器学习商讨人口运用的标准预测职责,更加是在条分缕析算法的公平性时。

高度一点,你就能相比较数据点与模型预测出差距结果的最相似点。大家将那一个点称为“反事实”(Counterfactuals),可以突显出模型的裁决边界。

在那种景观下,对于选定的数据点,模型预测该人年收入超过5万加元的信度为73%。该工具自动定位数据汇总最相似的人,模型预测其年收入低于5万美金,然后将选定数据点和与之最相似、但臆想结果相反的数据点进行并排比较。正如图所示,二者只有在年龄和工作上设有微小的差距,但模型的展望结果已经完全相反了。

亚洲必赢登录 34

亚洲必赢登录 35

成效五:按相似度排列示例

对Counterfactuals的可比。二人唯有在年龄和职业上存在微小的反差,但模型的推断结果已经完全相反

用L1或L2距离从选定的数据点创立距离特性,并将其可视化举办更进一步分析。

模型性能和算法公平性分析

亚洲必赢登录 36

用户仍能够商讨不同分类阈值的震慑,同时考虑差异数值公平性标准等约束规范。下图所示为微笑探测器模型的结果,该模型在开源CelebA数据集上磨练,数据集是已标记的头面人物面部图像。

职能六:查看混淆矩阵和ROC曲线

下图所示数据集中的脸部图像依照头发是还是不是为红色分开,七个图像中的每一组都建立一条ROC曲线和一个推断结果的混淆矩阵,再安装一个置信度滑块,设定模型必须在超越某一置信度时才能断定目的的颜面是微笑的。本例中,What-If工具自动安装两组的置信度阈值,以优化模型,达成机会均等。

对此富含描述真实标签特性的二分类模型和演示,使用阈值、ROC曲线、数值混淆矩阵和本钱比交互式地切磋模型性能。

亚洲必赢登录 37

亚洲必赢登录 38

应用What-if工具对微笑检测模型两有些数据的展望表现的可比,其中揣测模型分类阈值设置满足“机会公平”

成效七:测试算法公平性限制

检测错误分类、评估模型公平性、调查模型差距数据集

对于二分类模型来说,这么些工具得以将您的数据集分成子数据集,继而探索差别算法公平性约束(fairness
constraints)的震慑。

为了证实What-if工具的效率,大家利用预先操练的模型发表了一组Demo:

亚洲必赢登录 39

检测错误分类:多类分类模型,模型按照对植物的花的几遍考察来预测植物的连串。What-if工具有助于彰显模型的仲裁边界,弄清导致错误分类的来头。

传送门

评估二元分类模型的公平性:上边提到的用来微笑表情检测的图像分类模型。What-if工具有助于评估不一致子图像组的算法公平性。在该模型的教练中,有意没有提供来自特定人群的言传身教,目标是为了彰显What-if工具怎么样可以宣布模型中的那种过错。对模型预测公平性的评估须求细致考虑全部背景,可是What-if工具是一个使得的量化起源。

在谷歌(谷歌(Google))官方博客上,探究人士还公布了用预操练模型进行的一组演示,比如检测错误分类的案由,评估二元分类模型的公平性和调研不一致子数据集中模型的显现等。可以运动官方博客查看更加多,博客地址:

检察模型在差距子群体中的表现:回归模型可以用来按照人口普查音讯预测受试者的年纪。What-if工具能显示出模型在差别子群体中的相对表现,以及差距风味怎么样独立影响预测结果。该模型使用美国人口普查数据集进行陶冶。

What-If工具的确切应用

What-If Tool介绍主页:

咱俩将What-If工具在谷歌内部社团中举办了测试,该工具在测试中显现出了从来价值。有协会急忙发现他们的模型错误地忽视了数据集的所有特征,修复了原先未察觉的代码错误。
还有团队使用该工具将模型示例按性质高到低排列出来,并发现表现不好的模子示例的周转情势。

大家希望谷歌(Google)内外的大千世界都来利用What-If工具,以更好地精通机器学习模型,并伊始评估预测模型的公平性。
大家的代码是开源的,欢迎对该工具继续添砖加瓦。

—回到微博,查看越多

Github:

权利编辑:

倒计时 8

回来乐乎,查看更加多

义务编辑:

相关文章

网站地图xml地图