Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka popisuje tabulky metrik vytvořené monitorováním Databricks Lakehouse. Informace o řídicím panelu vytvořeném monitorováním najdete v tématu Použití vygenerovaného řídicího panelu SQL.
Když se monitorování spustí v tabulce Databricks, vytvoří nebo aktualizuje dvě tabulky metrik: tabulku metrik profilu a tabulku metrik posunu.
- Tabulka metrik profilu obsahuje souhrnné statistiky pro každý sloupec a pro každou kombinaci časových intervalů, řezů a seskupování sloupců. Tabulka
InferenceLog
analýzy obsahuje také metriky přesnosti modelu. - Tabulka metrik posunu obsahuje statistiky, které sledují změny v distribuci metriky. Tabulky posunů se dají použít k vizualizaci nebo upozorňování na změny v datech místo konkrétních hodnot. Vypočítávají se následující typy odchylek:
- Po sobě jdoucí posun porovnává okno s předchozím časovým oknem. Po sobě jdoucí posun se vypočítá pouze v případě, že po sobě jdoucí časové období existuje po agregaci podle zadaných podrobností.
- Posun směrného plánu porovnává okno s rozdělením podle směrného plánu určeného tabulkou směrného plánu. Posun směrného plánu se vypočítá pouze v případě, že je k dispozici tabulka směrného plánu.
Kde se nacházejí tabulky metrik
Monitorování tabulek metrik se ukládá do {output_schema}.{table_name}_profile_metrics
a {output_schema}.{table_name}_drift_metrics
kde:
-
{output_schema}
je katalog a schéma určené parametremoutput_schema_name
. -
{table_name}
je název monitorované tabulky.
Jak se vypočítávají statistiky monitorování
Každá statistika a metrika v tabulkách metrik se počítají pro zadaný časový interval (označovaný jako "okno"). Pro Snapshot
účely analýzy je časové období jedním bodem v čase, který odpovídá času, kdy byla metrika aktualizována. Časový TimeSeries
interval a InferenceLog
analýza vychází z podrobností zadaných v create_monitor
argumentu a hodnot zadaných v timestamp_col
argumentu profile_type
.
Metriky se vždy počítají pro celou tabulku. Pokud navíc zadáte výraz řezů, metriky se počítají pro každý řez dat definovaný hodnotou výrazu.
Příklad:
slicing_exprs=["col_1", "col_2 > 10"]
generuje následující řezy: jeden pro , jeden pro col_2 > 10
col_2 <= 10
a jeden pro každou jedinečnou hodnotu v col1
.
Řezy jsou v tabulkách metrik identifikovány názvy slice_key
sloupců a slice_value
. V tomto příkladu by jeden klíč řezu byl "col_2 > 10" a odpovídající hodnoty by byly "true" a "false". Celá tabulka je ekvivalentní slice_key
hodnotě = NULL a slice_value
= NULL. Řezy jsou definované jedním klíčem řezu.
Metriky se počítají pro všechny možné skupiny definované časovými okny a průřezy klíčů a hodnot. Kromě toho se metriky pro InferenceLog
analýzu počítají pro každé ID modelu. Podrobnosti najdete v tématu Schémata sloupců pro vygenerované tabulky.
Další statistiky monitorování přesnosti modelu (InferenceLog
pouze analýza)
Další statistiky se počítají pro InferenceLog
analýzu.
- Kvalita modelu se vypočítá, pokud je k dispozici obojí
label_col
prediction_col
. - Řezy se automaticky vytvářejí na základě jedinečných
model_id_col
hodnot . - U klasifikačních modelů se pro řezy, které mají logickou hodnotu, počítají statistiky nestrannosti a předsudků.
Tabulky metrik analýzy dotazů a posunu
Tabulky metrik můžete dotazovat přímo. Následující příklad je založen na InferenceLog
analýze:
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
Schémata sloupců pro vygenerované tabulky
Pro každý sloupec v primární tabulce obsahují tabulky metrik jeden řádek pro každou kombinaci sloupců seskupení. Sloupec přidružený k jednotlivým řádkům se zobrazí ve sloupci column_name
.
Pro metriky založené na více než jednom sloupci, jako jsou metriky přesnosti modelu, column_name
je nastavena na :table
hodnotu .
Pro metriky profilu se používají následující sloupce seskupení:
- časové období
- členitost (
TimeSeries
aInferenceLog
pouze analýza) - typ protokolu – vstupní tabulka nebo směrná tabulka
- průřez – klíč a hodnota
- ID modelu (
InferenceLog
pouze analýza)
Pro metriky posunu se používají následující další sloupce seskupení:
- časové období porovnání
- typ posunu (porovnání s předchozím oknem nebo porovnáním se směrnou tabulkou)
Schémata tabulek metrik jsou uvedená níže a jsou zobrazená také v referenční dokumentaci k rozhraní API pro monitorování Databricks Lakehouse.
Schéma tabulky metrik profilu
Následující tabulka ukazuje schéma tabulky metrik profilu. Pokud se metrika nevztahuje na řádek, má odpovídající buňka hodnotu null.
Název sloupce | Typ | Popis |
---|---|---|
Seskupování sloupců | ||
okno | Struktura. Viz [1] níže. | Časové období. |
zrnitost | řetězec | Doba trvání okna nastavená podle parametru granularities . [2] |
model_id_col | řetězec | Nepovinné. Používá se pouze pro InferenceLog typ analýzy. |
typ záznamu | řetězec | Tabulka použitá k výpočtu metrik SMĚRNÝ PLÁN nebo VSTUP. |
klíč řezu | řetězec | Výraz řezu Hodnota NULL pro výchozí nastavení, což jsou všechna data. |
slice_value | řetězec | Hodnota výrazu řezu |
název sloupce | řetězec | Název sloupce v primární tabulce
:table je speciální název pro metriky, které platí pro celou tabulku, jako je například přesnost modelu. |
typ dat | řetězec | Datový typ Sparku column_name . |
verze potvrzení protokolovací tabulky | int (integer) | Ignorujte. |
verze monitoru | bigint | Verze konfigurace monitorování sloužící k výpočtu metrik v řádku Podrobnosti najdete níže v části [3]. |
Sloupce metrik – souhrnná statistika | ||
počítat | bigint | Počet hodnot, které nejsou null. |
num_nulls | bigint | Počet hodnot null v column_name . |
prům. | dvojitý | Aritmetický průměr sloupce, který zařadí hodnoty null. |
kvantily | array<double> |
Pole 1000 kvantových hodnot. Viz [4] níže. |
jedinečný_počet | bigint | Přibližný počet jedinečných hodnot v column_name . Tato funkce používá approx_count_distinct funkci, takže výsledek nemusí být přesný. |
minuta | dvojitý | Minimální hodnota v column_name . |
maximálně | dvojitý | Maximální hodnota v column_name . |
Verze STDDEV | dvojitý | Směrodatná odchylka column_name . |
num_zeros | bigint | Počet nul v column_name . |
num_nan | bigint | Počet hodnot NaN v column_name . |
minimální velikost | dvojitý | Minimální velikost polí nebo struktur v column_name . |
maximální_velikost | dvojitý | Maximální velikost polí nebo struktur v column_name . |
průměrná velikost | dvojitý | Průměrná velikost polí nebo struktur v column_name . |
min_len | dvojitý | Minimální délka řetězce a binárních hodnot v column_name . |
max_length | dvojitý | Maximální délka řetězcových a binárních hodnot v column_name . |
avg_len | dvojitý | Průměrná délka řetězce a binárních hodnot v column_name . |
časté položky | Struktura. Viz [1] níže. | Nejčastěji se vyskytujících položek: 100 nejvyšších. |
non_null_columns | array<string> |
Seznam sloupců s alespoň jednou hodnotou, která není null. |
medián | dvojitý | Medián hodnoty column_name . |
procento_null | dvojitý | Procento hodnot null v column_name . |
procenta nul | dvojitý | Procento hodnot, které jsou nula v column_name . |
procento_rozlišeno | dvojitý | Procento hodnot, které jsou odlišné v column_name . |
Sloupce metrik – přesnost klasifikačního modelu [5] | ||
skóre přesnosti | dvojitý | Přesnost modelu vypočítaná jako (počet správných předpovědí / celkový počet předpovědí), ignorování hodnot null |
matice záměn | Struktura. Viz [1] níže. | |
přesnost | Struktura. Viz [1] níže. | |
úplnost | Struktura. Viz [1] níže. | |
f1 skóre | Struktura. Viz [1] níže. | |
Sloupce metrik – přesnost regresního modelu [5] | ||
střední kvadratická chyba | dvojitý | Střední kvadratická chyba mezi prediction_col a label_col . |
Chyba odmocniny střední kvadratické hodnoty | dvojitý | Odmocnina střední kvadratická chyba mezi prediction_col a label_col . |
průměrná střední chyba | dvojitý | Střední průměrná chyba mezi prediction_col a label_col . |
průměrná absolutní procentuální chyba | dvojitý | Střední absolutní procentuální chyba mezi prediction_col a label_col . |
r2_score | dvojitý | R-čtvercové skóre mezi prediction_col a label_col . |
Sloupce metrik – nestrannost a předsudky [6] | ||
prediktivní parita | dvojitý | Určuje, zda mají obě skupiny stejnou přesnost ve všech predikovaných třídách.
label_col je povinné. |
předpovědní rovnost | dvojitý | Určuje, zda mají obě skupiny stejnou falešně pozitivní míru napříč všemi predikovanými třídami.
label_col je povinné. |
rovné příležitosti | dvojitý | Určuje, zda mají obě skupiny stejnou úplnost napříč všemi predikovanými třídami.
label_col je povinné. |
statistická parita | dvojitý | Určuje, zda mají obě skupiny stejnou míru přijetí. Zde je míra přijetí definována jako empirická pravděpodobnost, která se má předpovědět jako určitá třída napříč všemi predikovanými třídami. |
[1] Formát struktury pro confusion_matrix
, precision
, recall
a f1_score
:
Název sloupce | Typ |
---|---|
okno | struct<start: timestamp, end: timestamp> |
časté položky | array<struct<item: string, count: bigint>> |
matice záměn | struct<prediction: string, label: string, count: bigint> |
přesnost | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
úplnost | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
f1 skóre | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
[2] U časových řad nebo profilů odvozování se monitor po dobu 30 dnů od vytvoření monitoru vrátí. Z tohoto důvodu může první analýza zahrnovat částečné okno. Limit 30 dnů může například spadat doprostřed týdne nebo měsíce, v takovém případě se celý týden nebo měsíc do výpočtu nezahrne. Tento problém se týká pouze prvního okna.
[3] Verze zobrazená v tomto sloupci je verze, která byla použita k výpočtu statistik v řádku a nemusí být aktuální verzí monitoru. Pokaždé, když metriky aktualizujete, se monitor pokusí překompilovat dříve počítané metriky pomocí aktuální konfigurace monitorování. Aktuální verze monitorování se zobrazí v informacích o monitorování vrácených rozhraním API a klientem Pythonu.
[4] Vzorový kód pro načtení 50. percentilu: SELECT element_at(quantiles, int((size(quantiles)+1)/2)) AS p50 ...
nebo SELECT quantiles[500] ...
.
[5] Zobrazí se pouze v případě, že monitor obsahuje InferenceLog
typ analýzy a je k dispozici.label_col
prediction_col
[6] Zobrazí se pouze v případě, že monitor obsahuje InferenceLog
typ analýzy a problem_type
je classification
.
Schéma tabulky posunu metrik
Následující tabulka ukazuje schéma tabulky metrik posunu. Tabulka posunů se generuje pouze v případě, že je zadána směrná tabulka nebo pokud po sobě jdoucí časové období existuje po agregaci podle zadaných podrobností.
Název sloupce | Typ | Popis |
---|---|---|
Seskupování sloupců | ||
okno | struct<start: timestamp, end: timestamp> |
Časové období. |
window_cmp | struct<start: timestamp, end: timestamp> |
Srovnávací okno pro drift_type CONSECUTIVE . |
typ driftu | řetězec | SMĚRNÝ PLÁN nebo PO SOBĚ JDOUCÍ. Ať už se metriky posunu porovnávají s předchozím časovým oknem nebo se směrnou tabulkou. |
zrnitost | řetězec | Doba trvání okna nastavená podle parametru granularities . [7] |
model_id_col | řetězec | Nepovinné. Používá se pouze pro InferenceLog typ analýzy. |
klíč řezu | řetězec | Výraz řezu Hodnota NULL pro výchozí nastavení, což jsou všechna data. |
hodnota_řezu | řetězec | Hodnota výrazu řezu |
název sloupce | řetězec | Název sloupce v primární tabulce
:table je speciální název pro metriky, které platí pro celou tabulku, jako je například přesnost modelu. |
typ dat | řetězec | Datový typ Sparku column_name . |
verze monitoru | bigint | Verze konfigurace monitorování sloužící k výpočtu metrik v řádku Podrobnosti najdete níže v části [8]. |
Sloupce metrik – posun | Rozdíly se počítají jako aktuální okno – okno porovnání. | |
count_delta | dvojitý | Rozdíl v count . |
avg_delta | dvojitý | Rozdíl v avg . |
percent_null_delta | dvojitý | Rozdíl v percent_null . |
delta_procent_nul | dvojitý | Rozdíl v percent_zeros . |
procent_distinkt_delta | dvojitý | Rozdíl v percent_distinct . |
non_null_columns_delta | struct<added: int, missing: int> |
Počet sloupců se zvýšením nebo snížením hodnot, které nejsou null. |
chi_squared_test | struct<statistic: double, pvalue: double> |
Chí-kvadrátový test pro posun v rozdělení. |
ks_test | struct<statistic: double, pvalue: double> |
Test KS pro odchylky v distribuci Vypočítáno pouze pro číselné sloupce. |
vzdálenost od televize | dvojitý | Celková variační vzdálenost pro posun v rozdělení. |
vzdálenost l_nekonečno | dvojitý | L-nekonečno vzdálenost pro posun v rozdělení. |
js_distance | dvojitý | Jensen–Shannon vzdálenost pro posun v distribuci. Vypočítáno pouze pro sloupce kategorií. |
Wassersteinova vzdálenost | dvojitý | Posun mezi dvěma číselnými rozděleními pomocí metriky vzdálenosti Wasserstein. |
population_stability_index | dvojitý | Metrika pro porovnání posunu mezi dvěma číselnými rozděleními pomocí metriky indexu stability populace Podrobnosti najdete níže v části [9]. |
[7] U profilů časových řad nebo odvozování se monitor po dobu 30 dnů od vytvoření monitoru vrátí. Z tohoto důvodu může první analýza zahrnovat částečné okno. Limit 30 dnů může například spadat doprostřed týdne nebo měsíce, v takovém případě se celý týden nebo měsíc do výpočtu nezahrne. Tento problém se týká pouze prvního okna.
[8] Verze zobrazená v tomto sloupci je verze, která byla použita k výpočtu statistik v řádku a nemusí být aktuální verzí monitoru. Pokaždé, když metriky aktualizujete, se monitor pokusí překompilovat dříve počítané metriky pomocí aktuální konfigurace monitorování. Aktuální verze monitorování se zobrazí v informacích o monitorování vrácených rozhraním API a klientem Pythonu.
[9] Výstup indexu stability populace je číselná hodnota, která představuje, jak se liší dvě rozdělení. Rozsah je [0, inf). PSI < 0.1 znamená, že nedošlo k významné změně populace. PSI < 0.2 označuje střední změnu populace. PSI >= 0,2 označuje významnou změnu populace.