编者按:在kdd 2017上,google推出基于tensorflow的可扩展机器学习平台tfx,主打管理数据、训练模型、模型评估和模型服务四块内容。而今天,tensorflow宣布开源txf的一个重要组件:“数据验证(tf.datavalidation)”,可帮助开发人员更好地认识数据,并将其用于机器学习。
ml算法及其性能一直是学术界和工业界关注的一个重点,如果输入数据有误,所有的优化工作就会付诸东流。在数据量较少的时候,理解和验证数据只是一项微不足道的任务,但是在实践中,研究人员使用的数据量往往非常庞大,这就给手动检查造成了巨大压力。因此,自动化数据分析、验证和监管是有必要的。
tfdv(数据验证)是tfx平台的一部分,它也是google每天用来分析和验证数pb数据的技术。鉴于此前它在数据纠错上一直有不错的表现,google相信,tfdv也可以被用户作为维持ml模型性能的一个好工具。
在设计tfdv的早期,google就已经考虑到了在笔记本电脑环境中使用它的需求,所以对于硬件要求,大家可以放宽心。
计算描述性数据统计
tfdv可以计算描述性统计数据,根据存在的特征和值分布的形状快速概述数据。这些统计信息有助于开发人员调查和了解他们的数据,并据此推断数据模式。
用tfdv计算统计信息:
stats = tfdv.generate_statistics_from_tfrecord(data_location=path)
可视化:
推断数据模式
所谓数据模式,就是描述数据的预期性能,它可以包括:
预计将出现哪些特征
它们的类型
每个样本中,一个特征有几个值
所有样本中,每个特征的出现几率
特征的预期域
简而言之,模式描述了对“正确”数据的期望,因此可被用于检测数据中的错误。但是在实践中,编写模式可能是非常繁琐的,尤其是对于具有大量特征的数据集。tfdv提供了一种基于描述性统计信息,生成旨在反映数据稳定特征的模式的方法:
#根据统计信息推断模式
schema = tfdv.infer_schema(train_stats)
#以表格格式显示内联模式
tfdv.display_schema(schema)
上图是个简单的可视化,列出了数据集中的每个特征以及它在编码模式下的主要特征。
验证新数据
给定一个模式,tfdv可以根据模式中的期望验证一组新数据。
#统计一组新数据
new_stats = tfdv.generate_statistics_from_csv(new_data)
#比较新数据如何符合模式
anomalies = tfdv.validate_statistics(new_stats, schema)
#显示内联异常
tfdv.display_anomalies(异常)
上述异常报告了新数据和模式之间的差别
验证持续添加的数据
对于数据集中不断增加的新数据,我们需要用原模式对它们进行验证。但是,在常规设置中,这个模式每个一段时间都会维护一次,它基于统计信息,而统计信息又会受新加入的数据影响。因此,之前我们推断的模式只是原始模式,它还必须要能随着时间推移不断变化。
用validate_statistics验证新添加的数据
如果想可视化不同数据集(不同日期的数据集)的统计数据,用visualize_statistics:
用facets可视化两组数据的比较,示例:day1、day2票价对比
tfdv还可以检测连续版本训练数据之间的分布变化,这有助于对比连续版本数据集之间的统计信息,如果发现有删改/添加的情况,应及时在检查数据异常时,更新信息。此外,tfdv还能检查训练数据和服务系统观察到的数据之间的特征值/分布差异,并用facets可视化。
github:github.com/tensorflow/data-validation
数字集成电路的四大性能检测技巧
燃料电池种类有哪些?
BigchainDB区块链技术和分布式数据库的主要优点分析
IDC预计2020年5G手机出货量将占智能手机总出货量的8.9%达到1.235亿部
常用的网络服务搭建和使用
TensorFlow宣布开源TXF的一个重要组件:“数据验证”
中科院与电科大微电子学院正式签署“联合培养教育基地” 协议
燧原科技正式发布第二代推理产品“云燧i20”
我国网络提速降费工作的重点方向是什么
人工智能算命真的准确吗
采用JN5139模块的无线网络技术实现船艇消防安全监测系统的设计
C语言函数参数关于传值和传指针有什么区别?
三星S6edge+外观设计解读
新思考:以“新物联”提速新基建
文心一言APP与澳门签署战略合作!打造“AI+旅游”澳门样本
电子芯闻早报:中国第一芯将浮出水面 小米VR今日发布
智慧城市出现比以往更智能的购物方式?
沃尔沃计划在瑞典舍夫德工厂开始生产电动机
什么是Ansible
数据存储能为企业带来什么