好的数据集质量,决定后续模型的上限 (Better data leads to better models),那么怎么快速评估数据集的质量了?

本文分享的Facets,是一款由Google开源、快速评估数据集质量的神器;

Facets包含2个组件:

  • facets overview:outlier检测、数据集间各特征分布比较

  • facets dive:交互式探索某一特定数据细节。


安装

pip install facets-overview

facets overview

以一个案例简单介绍使用方法,

# 1、生成数据源
import pandas as pdfeatures = ["Age", "Workclass", "fnlwgt", "Education", "Education-Num","Marital Status", "Occupation", "Relationship", "Race", "Sex","Capital Gain", "Capital Loss", "Hours per week", "Country", "Target"
]
train_data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data",names=features,sep=r'\s*,\s*',engine='python',na_values="?")
test_data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.test",names=features,sep=r'\s*,\s*',skiprows=[0],engine='python',na_values="?")# 2、GenericFeatureStatisticsGenerator()和ProtoFromDataFrames()函数存储数据集的所有统计信息
from facets_overview.generic_feature_statistics_generator import GenericFeatureStatisticsGenerator
import base64gfsg = GenericFeatureStatisticsGenerator()
proto = gfsg.ProtoFromDataFrames([{'name': 'train','table': train_data
}, {'name': 'test','table': test_data
}])
protostr = base64.b64encode(proto.SerializeToString()).decode("utf-8")# 3、生成HTML并可视化结果
from IPython.core.display import display, HTMLHTML_TEMPLATE = """<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script><link rel="import" href="https://raw.githubusercontent.com/PAIR-code/facets/1.0.0/facets-dist/facets-jupyter.html" ><facets-overview id="elem"></facets-overview><script>document.querySelector("#elem").protoInput = "{protostr}";</script>"""
html = HTML_TEMPLATE.format(protostr=protostr)
display(HTML(html))

以上结果可非常方便的展示train//test数据集的偏斜情况、缺失值情况等等。


facets dive

同样以一个案例简单介绍使用方法,

import base64
import urllib.request
import os
import pandas as pd# 数据准备
img_url = "https://storage.googleapis.com/what-if-tool-resources/misc-resources/fmnist_sprite_atlas.png"
img_name = os.path.basename(img_url)
urllib.request.urlretrieve(img_url, img_name)df_fmnist = pd.read_csv("https://storage.googleapis.com/what-if-tool-resources/misc-resources/fmnist.csv"
)
with open("fmnist_sprite_atlas.png", "rb") as image_file:encoded_string = base64.b64encode(image_file.read())# 生成HTML并可视化展示
from IPython.core.display import display, HTMLjsonstr = df_fmnist.to_json(orient='records')
HTML_TEMPLATE = """<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script><link rel="import" href="https://raw.githubusercontent.com/PAIR-code/facets/1.0.0/facets-dist/facets-jupyter.html">      <facets-dive id="elem" height="1000" sprite-image-width="28" sprite-image-height="28" atlas-url="data:image/png;base64,{encoded_string}"></facets-dive> #调用facets-dive <script>var data = {jsonstr};document.querySelector("#elem").data = data;</script>"""
html = HTML_TEMPLATE.format(jsonstr=jsonstr,encoded_string=encoded_string.decode("utf-8"))
display(HTML(html))

参考&进一步学习

【机器学习】Facets:评估机器学习数据集质量利器 (来自Google、可交互、可可视化)...相关推荐

  1. Facets:评估机器学习数据集质量利器 (来自Google、可交互、可可视化)

    好的数据集质量,决定后续模型的上限 (Better data leads to better models),那么怎么快速评估数据集的质量了? 本文分享的Facets,是一款由Google开源.快速评 ...

  2. 怎么提高代码质量?-来自Google的研发经验总结

    你的团队有没有过这样的经历:开发效率低,招了很多人,天天加班,出活却不多,线上bug频发,领导发飙,中层束手无策,工程师抱怨不断,查找bug困难.其实这些都是代码质量差惹的祸.代码质量是研发质量管理的 ...

  3. 机器学习模型评估指标总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:太子长琴,Datawhale优秀学习者 本文对机器学习模型评估指标 ...

  4. 【机器学习基础】机器学习模型评估教程!

    译者:追风者,Datawhale成员 如何在投入生产前评估机器学习模型性能? 想象一下,你训练了一个机器学习模型.也许,可以从中选几个候选方案. 你在测试集上运行它,得到了一些质量评估.模型没有过度拟 ...

  5. 【机器学习基础】非常详细!机器学习模型评估指标总结!

    作者:太子长琴,Datawhale优秀学习者 本文对机器学习模型评估指标进行了完整总结.机器学习的数据集一般被划分为训练集和测试集,训练集用于训练模型,测试集则用于评估模型.针对不同的机器学习问题(分 ...

  6. 机器学习模型评估及性能评价(超全)

    一.总述 为了评估机器学习算法在某项任务中好坏,需要我们设计方法去度量性能,比如,在分类任务中,我们经常衡量模型的精度(accuracy),即正确分类数据与全部分类数据的比值.与之相对应,我们去测量错 ...

  7. 机器学习——模型评估,选择与验证

    文章目录 机器学习--模型评估,选择与验证 训练集与测试集 为什么要有训练集与测试集 如何划分训练集与测试集 欠拟合与过拟合 欠拟合 过拟合 偏差与方差 模型误差来源 偏差与方差 验证集与交叉验证 为 ...

  8. 二、机器学习模型评估

    二.机器学习模型评估 2.1 模型评估:基本概念 错误率(Error Rate) 预测错误的样本数a占样本总数的比例m E = a m E=\frac{a}{m} E=ma​ 准确率(Accuracy ...

  9. 机器学习 | 分类评估指标

    文章目录 1. 分类评估指标 1.1 混淆矩阵 Confusion Matrix 1.1.1 scikit-learn 混淆矩阵函数接口 1.2 真阳性TP.假阳性FP.真阴性TN.假阴性FN 1.2 ...

最新文章

  1. 都 2020 年了,这些 OKR 的坑你还要踩吗?
  2. 液体冷却将在数据中心重现
  3. JavaScript高级程序设计学习笔记--引用类型
  4. 操作系统开发系列—2.进入32位保护模式
  5. Oracle有使用某个索引吗?(如何监控)
  6. PHP 数据库 ODBC
  7. 2. 性能测试中常见术语集合
  8. 六一儿童节,看我用ModelArts让8090梦回童年
  9. 每日一算法 ---- 冒泡排序
  10. 程序性能分析php,php代码的性能分析
  11. 《深入理解Android2》读书笔记(五)
  12. delphi2007 indy发邮件报could not load ssl library问题的解决
  13. 搜狐20年,张朝阳的失败与伟大
  14. python语言迷宫游戏_一个Python迷宫小游戏
  15. Gitlab Runner
  16. 如何用python进行相关性分析_Python文章相关性分析---金庸武侠小说分析
  17. 红外测温仪技术方案开发
  18. “六如真言”,战必克,攻必取,无往不胜!
  19. Python求助攻,哥哥姐姐们帮忙一下,网上下载的这个程序需要什么数据参数读入吗?帮忙写个主程序调用一下SPAC出结果,必有重谢
  20. 推荐 | CSP-JS信奥赛教材

热门文章

  1. tomcat实现多端口、多域名访问
  2. 2336: [HNOI2011]任务调度 - BZOJ
  3. C# viewstate
  4. 枚举类型(C# 编程指南)
  5. ERP系统开发平台 (C#语言,支持多数据库)
  6. .net多线程 Thread
  7. TCP/IP原理 (一)
  8. 富文本编辑器-Ueditor
  9. 用ASP.net判断上传文件类型的三种方法
  10. S3C2410中断系统