Поделиться через


Мониторинг таблиц метрик

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

На этой странице описаны таблицы метрик, созданные Databricks Lakehouse Monitoring. Сведения о панели мониторинга, созданной монитором, см. в разделе "Использование созданной панели мониторинга SQL".

При запуске монитора в таблице Databricks создается или обновляется две таблицы метрик: таблица метрик профиля и таблица метрик смещения.

  • Таблица метрик профиля содержит сводную статистику для каждого столбца и для каждого сочетания интервала времени, среза и группирования столбцов. Для InferenceLog анализа таблица анализа также содержит метрики точности модели.
  • Таблица метрик смещения содержит статистику, отслеживающую изменения в распределении для метрики. Таблицы смещения можно использовать для визуализации или оповещения об изменениях данных вместо определенных значений. Вычисляются следующие типы смещения:
    • Последовательный смещение сравнивает окно с предыдущим временем. Последовательный смещение вычисляется только в том случае, если последовательный период времени существует после агрегирования в соответствии с указанными детализациями.
    • Смещение базовых показателей сравнивает окно с базовым распределением, определяемым базовой таблицей. Базовое смещение вычисляется только в том случае, если указана базовая таблица.

Расположение таблиц метрик

Мониторинг таблиц метрик сохраняется в {output_schema}.{table_name}_profile_metrics и {output_schema}.{table_name}_drift_metricsгде:

  • {output_schema} — это каталог и схема, указанные в параметре output_schema_name.
  • {table_name} — имя отслеживаемой таблицы.

Вычисление статистики мониторинга

Каждая статистика и метрика в таблицах метрик вычисляется для указанного интервала времени (называемого окном). Для Snapshot анализа период времени — это одна точка во времени, соответствующая времени обновления метрики. Для TimeSeries и InferenceLog анализа период времени основан на детализациях, указанных в create_monitor аргументе, и значений timestamp_col , указанных в аргументе profile_type .

Метрики всегда вычисляются для всей таблицы. Кроме того, если вы предоставляете выражение срезов, метрики вычисляются для каждого среза данных, определенного значением выражения.

Например:

slicing_exprs=["col_1", "col_2 > 10"]

создает следующие срезы: один для col_2 > 10, один для col_2 <= 10, и один для каждого уникального значения в col1.

Срезы определяются в таблицах метрик по именам slice_key столбцов и slice_value. В этом примере один ключ среза будет иметь значение "col_2 > 10", а соответствующие значения будут "true" и "false". Вся таблица эквивалентна slice_key = NULL и slice_value = NULL. Срезы определяются одним ключом среза.

Метрики вычисляются для всех возможных групп, определенных временными окнами и ключами и значениями среза. Кроме того, для InferenceLog анализа метрики вычисляются для каждого идентификатора модели. Дополнительные сведения см. в разделе "Схемы столбцов" для созданных таблиц.

Дополнительная статистика для мониторинга точности модели (InferenceLog только анализ)

Для анализа вычисляются InferenceLog дополнительные статистические данные.

  • Качество модели вычисляется, если label_col оба и prediction_col указаны.
  • Срезы создаются автоматически на основе различных значений model_id_col.
  • Для моделей классификации статистика справедливости и предвзятости вычисляются для срезов, имеющих логическое значение.

Таблицы метрик анализа запросов и смещения

Вы можете напрямую запрашивать таблицы метрик. Следующий пример основан на InferenceLog анализе:

SELECT
  window.start, column_name, count, num_nulls, distinct_count, frequent_items
FROM census_monitor_db.adult_census_profile_metrics
WHERE model_id = 1    — Constrain to version 1
  AND slice_key IS NULL    — look at aggregate metrics over the whole data
  AND column_name = "income_predicted"
ORDER BY window.start

Схемы столбцов для созданных таблиц

Для каждого столбца в первичной таблице таблицы метрик содержат одну строку для каждого сочетания столбцов группировки. Столбец, связанный с каждой строкой, отображается в столбце column_name.

Для метрик на основе нескольких столбцов, таких как метрики точности модели, column_name задается значение :table.

Для метрик профиля используются следующие столбцы группировки:

  • временное окно
  • детализация (TimeSeries и InferenceLog только анализ)
  • Тип журнала — входная таблица или базовая таблица
  • ключ и значение среза
  • Идентификатор модели (InferenceLog только анализ)

Для метрик смещения используются следующие дополнительные столбцы группировки:

  • период времени сравнения
  • Тип смещения (сравнение с предыдущим окном или сравнением с базовой таблицей)

Схемы таблиц метрик показаны ниже, а также показаны в справочной документации по API мониторинга Databricks Lakehouse.

Схема таблицы метрик профиля

В следующей таблице показана схема таблицы метрик профиля. Если метрика не применима к строке, соответствующая ячейка имеет значение NULL.

Имя столбца Тип Описание
Группирование столбцов
window Структура. См. [1] ниже. Временное окно.
Степень детализации строка Длительность окна, заданная параметром granularities . [2]
model_id_col строка Необязательно. Используется только для InferenceLog типа анализа.
log_type строка Таблица, используемая для вычисления метрик. БАЗОВЫЕ ИЛИ ВХОДНЫЕ ДАННЫЕ.
slice_key строка Выражение среза. ЗНАЧЕНИЕ NULL для по умолчанию, которое является всеми данными.
slice_value строка Значение выражения срезов.
column_name строка Имя столбца в основной таблице. :table — это специальное имя метрик, которые применяются ко всей таблице, например точности модели.
data_type строка Тип column_nameданных Spark .
logging_table_commit_version INT Игнорировать.
monitor_version bigint Версия конфигурации монитора, используемая для вычисления метрик в строке. Дополнительные сведения см. в разделе [3] ниже.
Столбцы метрик — сводная статистика
count bigint Число непустых значений.
num_nulls bigint Число значений NULL в column_name.
avg двойной точности Арифметическое среднее столбца, загорающее значения NULL.
квантилии array<double> Массив из 1000 квантилей. См. [4] ниже.
distinct_count bigint Число различных значений в column_name.
мин двойной точности Минимальное значение в column_name.
макс. двойной точности Максимальное значение в column_name.
stddev двойной точности Стандартное отклонение column_name.
num_zeros bigint Число нулей в column_name.
num_nan bigint Число значений NaN в column_name.
min_size двойной точности Минимальный размер массивов или структур в column_name.
max_size двойной точности Максимальный размер массивов или структур в column_name.
avg_size двойной точности Средний размер массивов или структур в column_name.
min_len двойной точности Минимальная длина строковых и двоичных значений в column_name.
max_len двойной точности Максимальная длина строковых и двоичных значений в column_name.
avg_len двойной точности Средняя длина строковых и двоичных значений в column_name.
frequent_items Структура. См. [1] ниже. Первые 100 наиболее часто встречающихся элементов.
non_null_columns array<string> Список столбцов с по крайней мере одним ненулевом значением.
медиана двойной точности Медиановое значение column_name.
percent_null двойной точности Процент значений NULL в column_name.
percent_zeros двойной точности Процент значений, которые равны нулю column_name.
percent_distinct двойной точности Процент значений, которые отличаются в column_name.
Столбцы метрик — точность модели классификации [5]
accuracy_score двойной точности Точность модели, вычисляемая как (число правильных прогнозов / общее число прогнозов), игнорируя значения NULL.
confusion_matrix Структура. См. [1] ниже.
точность Структура. См. [1] ниже.
отзыв Структура. См. [1] ниже.
f1_score Структура. См. [1] ниже.
Столбцы метрик — точность модели регрессии [5]
mean_squared_error двойной точности Средняя квадратная ошибка между prediction_col и label_col.
Среднеквадратическая погрешность двойной точности Корневая средняя квадратная ошибка между prediction_col и label_col.
mean_average_error двойной точности Средняя средняя ошибка между prediction_col и label_col.
Средняя абсолютная погрешность в процентах двойной точности Средняя абсолютная процентная ошибка между prediction_col и label_col.
r2_score; двойной точности R-квадратная оценка между prediction_col и label_col.
Столбцы метрик — справедливость и предвзятость [6]
predictive_parity двойной точности Измеряет, имеют ли две группы одинаковую точность во всех прогнозируемых классах. label_col является обязательным.
predictive_equality двойной точности Измеряет, имеют ли две группы равные ложные положительные показатели во всех прогнозируемых классах. label_col является обязательным.
equal_opportunity двойной точности Измеряет, имеют ли две группы одинаковый отзыв во всех прогнозируемых классах. label_col является обязательным.
statistical_parity двойной точности Измеряет, имеют ли две группы равный коэффициент принятия. Коэффициент принятия здесь определяется как эмпирическая вероятность прогнозирования как определенный класс во всех прогнозируемых классах.

[1] Формат структуры для confusion_matrix, precisionrecallи f1_score:

Имя столбца Тип
window struct<start: timestamp, end: timestamp>
frequent_items array<struct<item: string, count: bigint>>
confusion_matrix struct<prediction: string, label: string, count: bigint>
точность struct<one_vs_all: map<string,double>, macro: double, weighted: double>
отзыв struct<one_vs_all: map<string,double>, macro: double, weighted: double>
f1_score struct<one_vs_all: map<string,double>, macro: double, weighted: double>

[2] Для профилей временных рядов или выводов монитор возвращается в течение 30 дней с момента создания монитора. Из-за этого отключения первый анализ может включать частичное окно. Например, ограничение на 30 дней может оказаться в середине недели или месяца, в этом случае полная неделя или месяц не включена в расчет. Эта проблема влияет только на первое окно.

[3] Версия, показанная в этом столбце, — это версия, используемая для вычисления статистики в строке и не являющаяся текущей версией монитора. Каждый раз при обновлении метрик монитор пытается перекомпьютировать ранее вычисляемые метрики с помощью текущей конфигурации монитора. Текущая версия монитора отображается в сведениях о мониторе, возвращаемых API и клиентом Python.

[4] Пример кода для получения 50-го процентиля: SELECT element_at(quantiles, int((size(quantiles)+1)/2)) AS p50 ... или SELECT quantiles[500] ... .

[5] Отображается только в том случае, если монитор имеет InferenceLog тип анализа и label_col оба и prediction_col предоставляется.

[6] Отображается только в том случае, если монитор имеет InferenceLog тип анализа и problem_type имеет тип classification.

Схема таблицы метрик смещения

В следующей таблице показана схема таблицы метрик смещения. Таблица смещения создается только в том случае, если указана базовая таблица или если существует последовательный период времени после агрегирования в соответствии с указанными детализациями.

Имя столбца Тип Описание
Группирование столбцов
window struct<start: timestamp, end: timestamp> Временное окно.
window_cmp struct<start: timestamp, end: timestamp> Окно сравнения для drift_type CONSECUTIVE.
drift_type строка БАЗОВАЯ ИЛИ ПОСЛЕДОВАТЕЛЬНАЯ. Сравниваются ли метрики смещения с предыдущим периодом времени или базовой таблицей.
Степень детализации строка Длительность окна, заданная параметром granularities . [7]
model_id_col строка Необязательно. Используется только для InferenceLog типа анализа.
slice_key строка Выражение среза. ЗНАЧЕНИЕ NULL для по умолчанию, которое является всеми данными.
slice_value строка Значение выражения срезов.
column_name строка Имя столбца в основной таблице. :table — это специальное имя метрик, которые применяются ко всей таблице, например точности модели.
data_type строка Тип column_nameданных Spark .
monitor_version bigint Версия конфигурации монитора, используемая для вычисления метрик в строке. Дополнительные сведения см. в разделе [8].
Столбцы метрик — смещение Различия вычисляются как текущее окно — окно сравнения.
count_delta двойной точности Разница в count.
avg_delta двойной точности Разница в avg.
percent_null_delta двойной точности Разница в percent_null.
percent_zeros_delta двойной точности Разница в percent_zeros.
percent_distinct_delta двойной точности Разница в percent_distinct.
non_null_columns_delta struct<added: int, missing: int> Число столбцов с любым увеличением или уменьшением значений, отличных от NULL.
chi_squared_test struct<statistic: double, pvalue: double> Тест чи-квадрат для смещения в распределении.
ks_test struct<statistic: double, pvalue: double> Тест KS для смещения в распределении. Вычисляется только для числовых столбцов.
tv_distance двойной точности Общее расстояние вариантов для смещения в распределении.
l_infinity_distance двойной точности L-бесконечность расстояния для смещения в распределении.
js_distance двойной точности Дженсен-Шеннон расстояние для смещения в распределении. Вычисляется только для категориальных столбцов.
wasserstein_distance двойной точности Смещение между двумя числовыми распределениями с помощью метрики расстояния Wasserstein.
population_stability_index двойной точности Метрика для сравнения смещения между двумя числовыми распределениями с помощью метрики индекса стабильности популяции. Дополнительные сведения см. в разделе [9] ниже.

[7] Для профилей временных рядов или выводов монитор возвращается в течение 30 дней с момента создания монитора. Из-за этого отключения первый анализ может включать частичное окно. Например, ограничение на 30 дней может оказаться в середине недели или месяца, в этом случае полная неделя или месяц не включена в расчет. Эта проблема влияет только на первое окно.

[8] Версия, показанная в этом столбце, — это версия, используемая для вычисления статистики в строке и не являющаяся текущей версией монитора. Каждый раз при обновлении метрик монитор пытается перекомпьютировать ранее вычисляемые метрики с помощью текущей конфигурации монитора. Текущая версия монитора отображается в сведениях о мониторе, возвращаемых API и клиентом Python.

[9] Выходные данные индекса стабильности популяции — это числовое значение, представляющее, как различаются два распределения. Диапазон равен [0, inf). PSI < 0.1 означает, что значительное изменение численности населения не изменяется. PSI < 0.2 указывает на умеренное изменение численности населения. PSI >= 0,2 указывает на значительное изменение численности населения.