Tensorflow数据验证提供了一种查找数据异常的方法。
然而,我只能找到一种方法来提供异常的总结版本(通过使用tfdv.validate_statistics
和tfdv.display_anomalies
(。
是否有一些参数的功能可以传递,它不报告摘要,而是返回具有异常和什么异常类型的行?
以下示例:
import pandas as pd
import tensorflow_data_validation as tfdv
from tensorflow_metadata.proto import schema_pb2
df_stats = tfdv.generate_statistics_from_dataframe(df)
schema = tfdv.infer_schema(statistics=df_stats)
tfdv.set_domain(schema, "c1", schema_pb2.IntDomain(min=1, max=3))
anomalies = tfdv.validate_statistics(statistics=df_stats, schema=schema)
tfdv.display_anomalies(anomalies)
有没有一种方法可以利用TFDV返回类似的东西:
索引 | c1 | c2 | anomaly_type|
---|---|---|---|
3 | 100 | Z | c1超出范围值 |
4 | 100000 | Ac1超出范围值 |
不,你不能。这是因为验证的是统计数据,而不是实际数据。对于c1列,tfdv将stats中的min和max值与schema中的min值和max值进行比较。这意味着:
- tfdv不知道是否存在超出范围的其他值(例如100(
- tfdv无法返回检测到异常的行的索引,因为它没有此信息
查看此项了解更多信息:https://www.tensorflow.org/tfx/data_validation/anomalies?hl=en