上传三组表格即可分析AI模型,可视化工具Manifold开源,来自Uber华人女工程师

2020 年 1 月 10 日 量子位
晓查 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

调试机器学习模型是最痛苦的,因为算法本身不透明,就算运行结果不好,有时你也很难知道问题出在哪里。

了解ML模型的性能和行为是一个不容易的过程。性能摘要统计信息(输出的数据,比如AUC、均方误差等等,对指导我们如何改进模型是远远不够的。

AI平台TensorFlow已经有了可视化工具Tensorboard,但是如果你用的不是TensorFlow怎么办?

最近,Uber也推出了一款ML可视化调试工具Manifold(流形),可以帮助开发者发现让模型不能准确预测的数据子集,通过不同子集之间的特征分布差异来解释模型性能不佳的可能原因。

Manifold的作者之一还是个华人女工程师李乐之,她本科毕业南京大学,之后进入哈佛大学攻读硕士,毕业后进入Uber工作至今。

她在官方博客中表示,Maniflod可以为机器学习工作流程提供可解释性和可调试性。

2种视图,4大特点

Manifold为用户提供两大功能:性能比较视图特征分布视图

性能比较视图生成的结果如下:

X轴是模型的性能指标,一般是对数损失、平方误差或原始预测值。图片会根据实例之间跨模型的性能相似性,将数据集自动分为多个横行。而不同的颜色代表不同的模型。

特征分布视图可以显示按用户定义的数据特征值划分。它可以帮助用户识别可能与不正确的预测输出相关的任何输入特征分布。

其中,X轴是数据的特征值,Y轴是数据的分布密度,每个图左下角的标注是分散度分数,用户衡量数据切片之间分布差异。

Manifold主要有4大特点:

1、支持与模型无关的通用二元分类与回归模型调试。

用户将能够分析和比较各种算法类型的模型,分辨各种数据切片的性能差异。

2、支持表格化特征输入的可视化:包括数字、分类和地理空间等特征类型。

使用每个数据切片的特征值分布信息,用户可以更好地了解某些性能问题的潜在原因,例如,模型的预测损失与其数据点的地理位置和分布之间是否存在任何关联。

3、与Jupyter Notebook集成。

通过这种集成,Manifold将数据输入作为Pandas DataFrame对象接受,并在Jupyter中呈现可视化。

Jupyter Notebook是数据科学家和机器学习工程师使用最常用的平台之一,集成该功能可以让用户在不中断正常工作流程的情况下分析模型。

4、基于每个实例的预测损失和其他特征值的交互数据切片和性能比较。

用户将能够基于预测损失、真实值或其他感兴趣的特征对数据进行切片和查询。该功能使用户能够通过通用数据切片逻辑快速验证或拒绝其假设。

安装

对于JavaScript用户:

npm install @mlvis/manifold styled-components styletron-engine-atomic styletron-react

对于Python用户:

pip install mlvis

然后安装和启用Jupyter Notebook扩展

jupyter nbextension install --py --symlink --sys-prefix mlvis
jupyter nbextension enable --py --sys-prefix mlvis

除了在本地安装外,还有Demo网站可供尝试:

http://manifold.mlvis.io/

使用方法

Uber提供两种方式使用Manifold,一种是直接上传已有的模型数据到Demo网站。

在Demo网站上,我们可以看到三个上传项,它们分别是输入的“特征”、输出的“预测”以及“真实值”,分别对应于x、yPred、yTure,三个部分都以csv文件格式上传。

上传完成,即可看到由这些数据集生成的可视化效果。

另一种方式就是在自己程序中使用Manifold组件,需要先将数据转换成Manifold可以读懂的格式再导入:

import {loadLocalData} from '@mlvis/manifold/actions';

// create the following action and pass to dispatch
loadLocalData({
  fileList,
  dataTransformer,
});
const defaultDataTransformer = fileList => ({
  x:     [...],         // feature data
  yPred: [[...], ...]   // prediction data
  yTrue: [...],         // ground truth data
};

传送门

官方博客:
https://eng.uber.com/manifold-open-source/

开源地址:
https://github.com/uber/manifold#load-and-convert-data

作者系网易新闻·网易号“各有态度”签约作者


—  —

AI内参|把握AI发展新机遇

拓展优质人脉,获取最新AI资讯&论文教程,欢迎加入AI内参社群一起学习~

跟大咖交流 | 进入AI社群


量子位 QbitAI · 头条号签约作者



վ'ᴗ' ի 追踪AI技术和产品新动态


喜欢就点「在看」吧 !



登录查看更多
0

相关内容

【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
【图神经网络(GNN)结构化数据分析】
专知会员服务
114+阅读 · 2020年3月22日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
谷歌机器学习速成课程中文版pdf
专知会员服务
143+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
赶紧收藏!西瓜书《机器学习》完整笔记来了
大数据技术
29+阅读 · 2019年8月24日
备战AI求职季 | 100道机器学习面试题(下)
七月在线实验室
9+阅读 · 2019年3月22日
备战AI求职季 | 100道机器学习面试题(上)
七月在线实验室
9+阅读 · 2019年3月16日
Java开发者必看!机器学习开发库精选
云栖社区
5+阅读 · 2018年8月22日
BAT机器学习面试题1000题(331~335题)
七月在线实验室
12+阅读 · 2018年8月13日
机器学习笔试题精选
人工智能头条
13+阅读 · 2018年7月22日
Python中机器学习的特征选择工具
云栖社区
8+阅读 · 2018年7月16日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
机器学习新手必看10大算法
深度学习世界
4+阅读 · 2018年2月1日
Arxiv
6+阅读 · 2018年4月4日
Arxiv
3+阅读 · 2018年3月21日
VIP会员
相关资讯
赶紧收藏!西瓜书《机器学习》完整笔记来了
大数据技术
29+阅读 · 2019年8月24日
备战AI求职季 | 100道机器学习面试题(下)
七月在线实验室
9+阅读 · 2019年3月22日
备战AI求职季 | 100道机器学习面试题(上)
七月在线实验室
9+阅读 · 2019年3月16日
Java开发者必看!机器学习开发库精选
云栖社区
5+阅读 · 2018年8月22日
BAT机器学习面试题1000题(331~335题)
七月在线实验室
12+阅读 · 2018年8月13日
机器学习笔试题精选
人工智能头条
13+阅读 · 2018年7月22日
Python中机器学习的特征选择工具
云栖社区
8+阅读 · 2018年7月16日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
机器学习新手必看10大算法
深度学习世界
4+阅读 · 2018年2月1日
Top
微信扫码咨询专知VIP会员