如何启用数值特征漂移?

How to enable numerical feature drift?

我想在不设置域的情况下启用数值特征漂移。例如:我根据年龄对客户进行评分,并且在我的训练集中我有一个均匀分布的变量。现在,在我的服务数据中,所有客户都在 50 多岁(域不会捕捉到这种转变)。是否有任何选项可以标记这种需要在 tfdv 中重新训练的行为?

我试着给 tfdv 两个分布 N(0,1) 和 N(10,1) 但没有检测到异常。

编辑:漂移仅适用于分类特征。

Drift Comparator 用于某种时间序列数据,例如,比较昨天和今天的数据。

对于您的情况,我认为您应该使用 Skew Comparator,因为它会发现 TrainingServing 数据之间的 Distribution/Skew 差异。该函数的代码如下所示:

serving_stats = tfdv.generate_statistics_from_tfrecord(data_location=serving_data_path)

tfdv.get_feature(schema, 'payment_type').skew_comparator.infinity_norm.threshold = 0.01

skew_anomalies = tfdv.validate_statistics(
        statistics=train_stats, schema=schema, serving_statistics=serving_stats)

您可能需要尝试使用阈值(提到的 0.01)来标记 Anamolies。

数值特征的漂移目前正在开发中,将在下一版本的 tfdv(0.24.1 之后)中得到支持。为此,您必须使用 JSD 而不是无穷范数。

TFDV 添加了一项新功能,允许我们检测数字特征的偏差。在 skew_comparator.

中指定 jensen_shannon_divergence 阈值而不是 infinity_norm 阈值

示例:

tfdv.get_feature(schema, 'total_actions').skew_comparator.jensen_shannon_divergence.threshold = 0.01

您可以在这里查看更多信息:https://www.tensorflow.org/tfx/data_validation/get_started#checking_data_skew_and_drift