Мониторинг таблиц метрик
На этой странице описаны таблицы метрик, созданные 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
, precision
recall
и 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 указывает на значительное изменение численности населения.