谷歌开源机器学习可视化工具 Facets:从全新角度观察数据

By 黄小天2017年7月18日 10:51

近日,出于支持 PAIR initiative的目的,谷歌发布了 Facets,一款开源的可视化工具。它可以帮助你理解、分析和调试 ML 数据集。Facets 包含两个部分——Facets Overview 和 Facets Dive——允许用户从不同的粒度观看数据的全景图,还可以轻易地被用在 Jupyter notebooks 之内,或者嵌入网页之中。除了开放 Facets 源代码,谷歌还创建了演示网站,Github 和网站地址见文中。

  • Github:https://github.com/pair-code/facets
  • 演示网站:https://pair-code.github.io/facets/

从机器学习(ML)模型中取得最佳结果需要你对有数据有真正的理解。然而,ML 数据集的数据点一般有数百万种,每种包含数百个(甚至数千个)特征,致使不可能直观地理解整个数据集。可视化有助于解决大型数据集的这一难题。一图胜千言,而一个交互式可视化不止胜千言。

出于支持 PAIR initiative,我们发布了 Facets,一款开源的可视化工具,帮助你理解和分析 ML 数据集。Facets 包含两个部分——Facets Overview 和 Facets Dive——允许用户从不同的粒度观看其数据的全景图。你可以使用 Facets Overview 可视化数据每一个特征,或者使用 Facets Dive 探索个别的数据观察集。这些可视化允许你调试数据,这在机器学习中和调试模型一样重要;还可以轻易地被用在 Jupyter notebooks 之内,或者嵌入网页之中。我们除了开放 Facets 源代码,还创建了演示网站,允许任何人在浏览器中直接可视化数据集而无需安装任何软件或设置,也无需数据离开你的计算机。

Facets Overview

Facets Overview 自动地帮助用户快速理解数据集中所有特征的值分布。多个数据集(比如训练集和测试集)可在同一个可视化中进行比较。束缚机器学习的一般性数据难题被推向最前端,比如出乎意料的特征值、具有高比例遗失值的特征、带有不平衡分布的特征,数据集之间的特征分布偏态(distribution skew)。

加州大学尔湾分校(UCI)人口普查数据集 [1] 的 6 个数字特征的 Facets Overview。

特征按照不均匀性排序,带有最大不均匀性分布的特征排在顶部。标红的数字表示可能的问题点,在这种情况下,带有高比例值的数字特征设置为 0。右边的柱状图允许你比较训练集(蓝色)和测试集(橙色)之间的分布。

Facets Overview 展示了加州大学尔湾分校人口普查数据集 9 个分类特征中的 2 个。

这些特征通过分布间距被排序,把训练集(蓝色)和测试集(橙色)之间带有最大偏态的特征排在顶部。由于测试集中的尾随时段(「<=50K」vs「<=50K.」),「目标」特征中标签值在训练和测试集中有所不同。这可在特征的图表中查看,也可在表中「顶部」列的条目中看到。该标签不匹配将导致对该数据进行训练和测试的模型不能被正确评估。

Facets Dive

Facets Dive 提供了一个易于定制的直观界面,用于探索数据集中不同特征数据点之间的关系。通过 Facets Dive,你可以控制位置、颜色和视觉表现。如果数据点有与其相关的图像,则图像可以用作视觉表示。

Facets Dive 可视化显示了加州大学尔湾分校人口普查测试数据集中的 16281 个数据点。

动图展示了通过对数据点颜色不同特征「关系」进行分别着色,连续特征「年龄」为一个维度,离散特征「婚姻状况」为另一个维度进行排列。

Facets Dive 从「Quick Draw」数据集中生成的可视化效果,它显示了「Quick Draw」图片中笔画和点被正确地分类为人脸。

Quick Draw 数据集:https://github.com/googlecreativelab/quickdraw-dataset

Fun Fact:在大数据集中(如 CIFAR-10 数据集),一个小小的标签错误是很容易被忽视的。我们利用 Dive 检查了 CIFAR-10 数据集,并发现了一只青蛙猫——一只被标记为猫的青蛙。

使用 Facets Dive 探索 CIFAR-10 数据集。在这里,基本分类标签为行,预测分类标签为列。

这种组合就产生了混淆矩阵视图,我们可以在其中找到特定类型的错误分类。在上面的例子中,我们可以看到机器学习模型错误地将一些猫的图片分类为青蛙。把真实图形放在混淆矩阵中让我们发现的一个有趣现象是:这些「真猫」中的一只被模型预测为青蛙是因为它在视觉检查中被定义为青蛙,这是由于模型训练的数据集中它被人为地错误分类了。

你能区分出猫和青蛙吗?

在谷歌内部,Facets 已经展现出了巨大价值。现在,谷歌希望将这份便利分享到全世界,通过发现数据中更有趣的新特征来创造更加强大和准确的机器学习模型。因为 Facets 已经开源,你可以根据自己的需求自定义可视化内容,或为项目作出贡献。

参考文献

[1] Lichman, M. (2013). UCI Machine Learning Repository

[http://archive.ics.uci.edu/ml/datasets/Census+Income]. Irvine, CA: University of California, School of Information and Computer Science

[2] Learning Multiple Layers of Features from Tiny Images , Alex Krizhevsky, 2009:https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf

谷歌开源机器学习可视化工具 Facets:从全新角度观察数据相关推荐

  1. 谷歌开源Embedding可视化工具

    谷歌开源Embedding可视化工具 导读 目前,在深度学习中可以利用多种方法或工具将特征信息转换为低维稠密的向量表示(Embedding),且Embedding在自然语言处理.知识图谱.推荐搜索.机 ...

  2. 数据集可视化工具FACETS

    谷歌发布了 Facets,一款开源的可视化工具.它可以帮助你理解.分析和调试 ML 数据集.Facets 包含两个部分--Facets Overview 和 Facets Dive--允许用户从不同的 ...

  3. python机器学习可视化工具Yellowbrick介绍及平行坐标图实战示例

    python机器学习可视化工具Yellowbrick介绍及平行坐标图实战示例 目录 python机器学习可视化工具Yellowbrick介绍及平行坐标图实战示例 yellowbrick简介及安装

  4. python机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例

    python机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例 目录 机器学习可视化工具Yellowbrick绘图获取最佳聚类K值实战示例

  5. 开源性能可视化工具——FlameScope模式识别

    FlameScope是一个新的开源性能可视化工具,它使用次秒级偏移热图和火焰图来分析周期活动.方差.扰动.我们在Netflix TechBlog上面,发表了技术文章Netflix FlameScope ...

  6. github可视化工具_Github标星2.6K!微软开源的可视化工具,未免太酷炫了吧

    开源最前线(ID:OpenSourceTop) 猿妹编译 链接:https://visualstudiomagazine.com/articles/2019/10/14/sanddance.aspx ...

  7. 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞

    一名安全研究员表示,在谷歌开源漏洞跟踪工具 Monorail 中找到一个漏洞,可被用于执行跨站点搜索 (XS-Search) 攻击. Monorail 用于检查和 Chromium 相关项目中的问题, ...

  8. 谷歌开源集成学习工具AdaNet:2017年提出的算法终于实现了

    晓查 编译整理 量子位 报道 | 公众号 QbitAI 最近,谷歌在GitHub上发布了用TensorFlow实现的AutoML框架--AdaNet,它改进了集成学习的方法,能以最少的专家干预实现自动 ...

  9. 命令行参数怎么输入_太好用了!谷歌开源的命令行接口工具fire

    大家使用最多的命令行工具应该是pip了,pip提供了很多的命令行参数和选项,我们在终端使用pip install --help命令可以查看install子命令的帮助文档. 可以看到,除了最常用的pip ...

最新文章

  1. 使用Auto TensorCore CodeGen优化Matmul
  2. D3.js(v3)+react 制作 一个带坐标与比例尺的散点图 (V3版本)
  3. ResultSet用法集锦 (转)
  4. 深度协同过滤:用神经网络取代内积建模
  5. UVA-136:Ugly Numbers
  6. hadoop元数据mysql中表字段_hive mysql元数据表说明
  7. Windows 下使用ftp批处理脚本
  8. Digester简介和使用
  9. 计算机网络英文缩写汇总,计算机网络名词英文缩写解释大全
  10. mysql当前时间相减_mysql 查询当前时间加减时间
  11. js截取url所带参数方法与url截取字段中包含中文会乱码的解决方案
  12. 第一章 C语言程序设计概述
  13. 杭电2566_统计硬币——java
  14. String,StringBuffer,StringBuffer的区别
  15. 【Python】数据分析——直方图、散点图、线性回归、多项式回归、拟合度
  16. R语言caret机器学习(一)数据可视化:绘制特征变量图
  17. Linq to Sql 事务处理
  18. python编程猜拳游戏_python写猜拳小游戏
  19. 主流P2P免费网络电视软件横向评测!
  20. lindo中的0-1约束

热门文章

  1. 源字符集与执行字符集
  2. java akiba,java使用jeids实现redis2.6的脚本执行
  3. redis php 守护进程,PHP守护进程利用Redis队列实现业务
  4. python输入逗号分隔值文件_如何在Python(Pygame)中显示逗号分隔值(.txt)文件中的前10个高分...
  5. oracle11g知乎,【AAAI】AAAI2020录用论文汇总(二)
  6. leetcode 搜索插入位置
  7. 表白编程代码python_python抖音表白程序源代码
  8. 李宏毅线性代数笔记8 :坐标系变换8
  9. pyecharts 应用4: 二维散点图
  10. 数据中台建设是噱头还是黑科技?