资料是机械学习重要的核心,用於生产的机械学习必须考量大量且快速的资料情境,使用自动化、可扩展的资料分析、验证以及监控方法相当重要。 TensorFlow Data Validation (TFDV) 为 Google 开源的资料验证模组,可做为用於生产的机械学习组件之一,也可以融入您在笔记本的研究流程。
图片来源 TFX
功能介绍引用 TFDV官方教学文件,也提供 Colab 实作范例 可直接执行,您可以相互参照。
tensorflow-data-validation
模组。
!pip install tensorflow-data-validation
csv
、DataFrame
与TF Record
,变成可用统计数据。
tfdv.generate_statistics_from_csv
tfdv.generate_statistics_from_dataframe
tfdv.generate_statistics_from_tfrecord
tfdv.visualize_statistics()
tfdv.infer_schema
tfdv.display_schema
statisticsserving_stats
可检测训练服务偏差,previous_statistics
可检测偏移。
tfdv.validate_statistics
tfdv.visualize_statistics(
lhs_statistics=eval_stats,
rhs_statistics=train_stats,
lhs_name='EVAL_DATASET',
rhs_name='TRAIN_DATASET'
)
将徵测到的异常呈现及说明,轻松写意。
tfdv.display_anomalies
# Check eval data for errors by validating the eval data stats using the previously inferred schema.
anomalies = tfdv.validate_statistics(statistics=eval_stats, schema=schema)
tfdv.display_anomalies(anomalies)
在 Google TFDV 说明简报中,您可以看到左方为 资料与 Schema,右方红字为对照 Schema 的差异。
您可以依您的 Domain Knowledge 决定对异常采取的措施。如果异常表明数据错误,则应修复底层数据。否则,您可以更新纳入 Schema 以纳入。
TFDV 的异常处理参数请见官方文件,异常可能归类於资料型态的问题、未知 Domain 出现、超过数值边界值范围。
如果已经发现异常 Domain 处理,官方范例可以参考,其一是放宽异常特徵的看法,其二将该特徵纳入Domain。
# Relax the minimum fraction of values that must come from the domain for feature company.
company = tfdv.get_feature(schema, 'company')
company.distribution_constraints.min_domain_mass = 0.9
# Add new value to the domain of feature payment_type.
payment_type_domain = tfdv.get_domain(schema, 'payment_type')
payment_type_domain.value.append('Prcard')
另外您也可以透过Pandas操作DataFrame的方式整理资料,像是df.dropna()
、df=df[df['some_column']<100]
进行筛选与过滤。Pandas 快速指引可以参阅10分钟的Pandas入门-繁中版。
再次检视异常处理情形:
# Validate eval stats after updating the schema
updated_anomalies = tfdv.validate_statistics(eval_stats, schema)
tfdv.display_anomalies(updated_anomalies)
# 对 payment_type 特徵加入 skew 比对
payment_type = tfdv.get_feature(
schema,
'payment_type'
)
payment_type.skew_comparator.infinity_norm.threshold = 0.01
# 对 company 特徵增加 drift 比对
company=tfdv.get_feature(
schema,
'company'
)
company.drift_comparator.infinity_norm.threshold = 0.001
skew_anomalies = tfdv.validate_statistics(
train_stats,
schema,
previous_statistics=eval_stats,
serving_statistics=serving_stats
)
tfdv.display_anomalies(skew_anomalies)
schema_file
,将schema
存为*.pbtxt
,完整程序参见官方范例。
tfdv.write_schema_text(schema, schema_file)
在探索式资料分析 EDA 之中, TFDV 可以检测并输出调整後的 Schema。在生产流程之中,可以用Schema与生产中的资料统计资讯进行验证,对比与检测可能出现的 Data Drift 与 Skew ,并据以修正。
您可以完成持续跨日的追踪数据,例如有了第1日 schema 与统计资讯,可进行与 t 日的比对。。
<<: 30天零负担轻松学会制作APP介面及设计【DAY 05】
接着点选六个按钮(不要点选整个stack view),设定每个按钮的长宽和按钮与按钮的距离。 而後我...
前言 前面我们也已经学了不少的知识点,而这边也进入了铁人赛的最後一天,所以就来试着写一个简单的 it...
前情提要: 简单介绍了很厉害的青梅竹马 工具人们:所以说人帅又强真好啊....你有看过昨天吵很凶的网...
介绍 简单来说使用自动布局可能就是为了适配不同 iPhone 机型所发展的一个方法或框架? 总之我觉...
T0838 Modify Alarm Settings 攻击者修改设备的警告功能设定(如直接停止警告...