TensorFlow 数据验证 - 如何 return 有异常的行

TensorFlow Data Validation - How to return the rows with anomalies

Tensorflow Data Validation 提供了一种查找数据异常的方法。

但是,我只能找到一种方法来提供异常的汇总版本(通过使用 tfdv.validate_statisticstfdv.display_anomalies)。

是否有一些参数的功能可以传递而不是报告摘要,它 return 包含异常的行和什么异常类型?

按照下面的例子:

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 return 类似的东西:

index c1 c2 anomaly_type
3 100 Z c1 Out-of-range values
4 100000 A c1 Out-of-range values

如果没有,您会推荐什么替代方案?

不,你不能。那是因为正在验证的是统计数据,而不是实际数据。 对于 c1 列,tfdv 将在统计信息中找到的最小值和最大值与在架构中找到的最小值和最大值进行比较。这意味着:

  • tfdv 不知道是否有其他值超出范围(例如 100)
  • tfdv 无法return检测到异常的行的索引,因为它没有此信息

查看更多信息: https://www.tensorflow.org/tfx/data_validation/anomalies?hl=en