Как включить дрейф числовой функции?

Я хочу включить дрейф числовой функции без настройки домена. Пример: я оцениваю клиентов по возрасту, и в моем тренировочном наборе у меня было равномерное распределение переменной. Теперь, по моим данным обслуживания, всем клиентам за 50 (домен не поймает такую ​​смену). Есть ли возможность пометить такое поведение, которое потребовало бы переподготовки в tfdv?

Я попытался дать tfdv два распределения N(0,1) и N(10,1), но не обнаружил никаких аномалий.

РЕДАКТИРОВАТЬ: Drift работает только для категориальных функций.

3 ответа

Решение

Drift Comparator используется для типа данных временного ряда для сравнения, например, вчерашних и сегодняшних данных.

В вашем случае, я думаю, вы должны использовать Skew Comparator, поскольку он найдет разницу в распределении / перекосе между Training а также Serving Данные. Код для этой функции показан ниже:

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) для пометки анамолий.

Дрейфы для числовых функций сейчас находятся в разработке и будут поддерживаться в следующей версии tfdv (после 0.24.1). Для этого вам придется использовать JSD вместо бесконечной нормы.

TFDV добавил новую функцию, которая позволяет нам обнаруживать перекос для числовых функций. указать jensen_shannon_divergence порог вместо infinity_norm порог в skew_comparator.

Пример:

      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

Другие вопросы по тегам