Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina worden de metrische tabellen beschreven die zijn gemaakt door gegevensprofilering. Zie het dashboard voor gegevensprofilering voor informatie over het dashboard dat door een profiel is gemaakt.
Wanneer een profiel wordt uitgevoerd op een Databricks-tabel, worden er twee metrische tabellen gemaakt of bijgewerkt: een tabel met metrische gegevens van een profiel en een tabel met metrische driftgegevens.
- De tabel met metrische gegevens van het profiel bevat samenvattingsstatistieken voor elke kolom en voor elke combinatie van tijdvensters, segmenten en groeperingskolommen. Voor
InferenceLoganalyse bevat de analysetabel ook metrische gegevens over modelnauwkeurigheid. - De tabel met metrische driftgegevens bevat statistieken waarmee wijzigingen in de distributie voor een metrische waarde worden bijgehouden. Drifttabellen kunnen worden gebruikt om wijzigingen in de gegevens te visualiseren of te waarschuwen in plaats van specifieke waarden. De volgende typen drift worden berekend:
- Opeenvolgende drift vergelijkt een venster met het vorige tijdvenster. Opeenvolgende drift wordt alleen berekend als er een opeenvolgend tijdvenster bestaat na aggregatie volgens de opgegeven granulariteiten.
- Basislijndrift vergelijkt een venster met de basislijnverdeling die wordt bepaald door de basislijntabel. Basislijndrift wordt alleen berekend als er een basislijntabel wordt opgegeven.
Waar metrische tabellen zich bevinden
Metrische tabellen worden opgeslagen in {output_schema}.{table_name}_profile_metrics en {output_schema}.{table_name}_drift_metrics, waarbij:
-
{output_schema}is de catalogus en het schema dat is opgegeven dooroutput_schema_name. -
{table_name}is de naam van de tabel die wordt geprofileerd.
Hoe profielstatistieken worden berekend
Elke statistiek en metrische gegevens in de metrische tabellen worden berekend voor een opgegeven tijdsinterval (een 'venster' genoemd). Voor Snapshot analyse is het tijdvenster een enkel tijdstip dat overeenkomt met het tijdstip waarop de metrische waarde is vernieuwd. Voor TimeSeries en InferenceLog analyse is het tijdvenster gebaseerd op de granulariteiten die zijn opgegeven in create_monitor en de waarden in de timestamp_col opgegeven in het profile_type argument.
Metrische gegevens worden altijd berekend voor de hele tabel. Als u bovendien een segmentexpressie opgeeft, worden metrische gegevens berekend voor elk gegevenssegment dat is gedefinieerd door een waarde van de expressie.
Voorbeeld:
slicing_exprs=["col_1", "col_2 > 10"]
genereert de volgende segmenten: één voor col_2 > 10, één voor col_2 <= 10en één voor elke unieke waarde in col1.
Segmenten worden geïdentificeerd in de metrische tabellen door de kolomnamen slice_key en slice_value. In dit voorbeeld is één slicesleutel 'col_2 > 10' en zijn de bijbehorende waarden 'true' en 'false'. De hele tabel is gelijk aan slice_key = NULL en slice_value = NULL. Segmenten worden gedefinieerd door één slicesleutel.
Metrische gegevens worden berekend voor alle mogelijke groepen die zijn gedefinieerd door de tijdvensters en segmentsleutels en -waarden. Daarnaast InferenceLog worden voor analyse metrische gegevens berekend voor elke model-id. Zie Kolomschema's voor gegenereerde tabellen voor meer informatie.
Aanvullende statistieken voor modelnauwkeurigheid (InferenceLog alleen analyse)
Aanvullende statistieken worden berekend voor InferenceLog analyse.
- Modelkwaliteit wordt berekend als beide
label_colenprediction_colworden opgegeven. - Segmenten worden automatisch gemaakt op basis van de afzonderlijke waarden van
model_id_col. - Voor classificatiemodellen worden fairness- en bias-statistieken berekend voor segmenten met een Booleaanse waarde.
Tabellen met metrische gegevens voor queryanalyse en drift
U kunt rechtstreeks een query uitvoeren op de tabellen met metrische gegevens. Het volgende voorbeeld is gebaseerd op InferenceLog analyse:
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
Kolomschema's voor gegenereerde tabellen
Voor elke kolom in de primaire tabel bevatten de metrische tabellen één rij voor elke combinatie van groeperingskolommen. De kolom die aan elke rij is gekoppeld, wordt weergegeven in de kolom column_name.
Voor metrische gegevens op basis van meer dan één kolom, zoals metrische gegevens voor modelnauwkeurigheid, column_name is ingesteld op :table.
Voor metrische profielgegevens worden de volgende groeperingskolommen gebruikt:
- tijdvenster
- granulariteit (
TimeSeriesenInferenceLogalleen analyse) - logboektype - invoertabel of basislijntabel
- slicesleutel en -waarde
- model-id (
InferenceLogalleen analyse)
Voor metrische driftgegevens worden de volgende extra groeperingskolommen gebruikt:
- vergelijkingstijdvenster
- drifttype (vergelijking met vorige venster of vergelijking met basislijntabel)
De schema's van de metrische tabellen worden hieronder weergegeven en worden ook weergegeven in de referentiedocumentatie voor gegevensprofilerings-API.
Schema voor tabel met metrische gegevens van profiel
In de volgende tabel ziet u het schema van de tabel met metrische gegevens van het profiel. Als een metrische waarde niet van toepassing is op een rij, is de bijbehorende cel null.
| Kolomnaam | Typ | Beschrijving |
|---|---|---|
| Kolommen groeperen | ||
| venster | Structuur Zie [1] hieronder. | Tijdvenster. |
| Granulariteit | touw | Duur van het venster, ingesteld op granularities parameter. [2] |
| model_id_col | touw | Optioneel. Alleen gebruikt voor InferenceLog het analysetype. |
| log_type | touw | Tabel die wordt gebruikt om metrische gegevens te berekenen. BASISLIJN OF INVOER. |
| slice_key | touw | Slice-expressie. NULL voor standaardwaarde, dit zijn alle gegevens. |
| schijfswaarde | touw | De waarde van de segmenteringsexpressie. |
| kolomnaam | touw | Naam van kolom in primaire tabel.
:table is een speciale naam voor metrische gegevens die van toepassing zijn op de hele tabel, zoals modelnauwkeurigheid. |
| gegevenstype | touw | Spark-gegevenstype van column_name. |
| logboek_tabel_commit_versie | int | Negeren. |
| monitorversie | bigint | Versie van de profielconfiguratie die wordt gebruikt om de metrische gegevens in de rij te berekenen. Zie [3] hieronder voor meer informatie. |
| Kolommen met metrische gegevens - overzichtsstatistieken | ||
| aantal | bigint | Aantal niet-null-waarden. |
| aantal_nullen | bigint | Aantal null-waarden in column_name. |
| avg | dubbel | Rekenkundig gemiddelde van de kolom, waarbij null-waarden worden genegeerd. |
| kwantielen | array<double> |
Matrix van 1000 kwantielen. Zie [4] hieronder. |
| aantal_unieke | bigint | Bij benadering van het aantal afzonderlijke waarden in column_name. Hierbij wordt de approx_count_distinct functie gebruikt, zodat het resultaat mogelijk niet exact is. |
| min | dubbel | Minimumwaarde in column_name. |
| max | dubbel | Maximumwaarde in column_name. |
| stddev | dubbel | Standaarddeviatie van column_name. |
| aantal_nullen | bigint | Aantal nullen in column_name. |
| num_nan | bigint | Aantal NaN-waarden in column_name. |
| minimale grootte | dubbel | Minimale grootte van matrices of structuren in column_name. |
| maximale_grootte | dubbel | Maximale grootte van matrices of structuren in column_name. |
| gemiddelde_grootte | dubbel | Gemiddelde grootte van matrices of structuren in column_name. |
| minimale_lengte | dubbel | Minimale lengte van tekenreeks- en binaire waarden in column_name. |
| max_len | dubbel | Maximale lengte van tekenreeks- en binaire waarden in column_name. |
| avg_len | dubbel | Gemiddelde lengte van tekenreeks- en binaire waarden in column_name. |
| frequente_objecten | Structuur Zie [1] hieronder. | Top 100 meest voorkomende items. |
| niet-nul-kolommen | array<string> |
Lijst met kolommen met ten minste één niet-null-waarde. |
| mediaan | dubbel | Mediaanwaarde van column_name. |
| percent_null | dubbel | Percentage null-waarden in column_name. |
| percentage_nullen | dubbel | Percentage waarden dat nul is.column_name |
| percentage_uniek | dubbel | Percentage waarden dat uniek is in column_name. |
| Kolommen met metrische gegevens - nauwkeurigheid van classificatiemodel [5] | ||
| accuracy_score | dubbel | Nauwkeurigheid van het model, berekend als:
Null-waarden worden genegeerd. |
| log-verlies | dubbel | Logboekverlies voor classificatieproblemen, berekend als:
Vereist prediction_proba_col. Voorspellingen of labels die NULL zijn, worden genegeerd. |
| roc_auc_score | Structuur Zie [1] hieronder. | ROC AUC-score voor binaire en multiklasseclassificatie. Vereist prediction_proba_col. Geeft als resultaat een-versus-één gewogen en macrogemiddelde scores. Labels of voorspellingen die NULL zijn, worden genegeerd. |
| confusion_matrix | Structuur Zie [1] hieronder. | |
| precisie | Structuur Zie [1] hieronder. | |
| relevante overeenkomsten | Structuur Zie [1] hieronder. | |
| F1-score | Structuur Zie [1] hieronder. | |
| Kolommen met metrische gegevens - nauwkeurigheid van regressiemodel [5] | ||
| gemiddelde kwadratische fout | dubbel | Gemiddelde kwadratische fout tussen prediction_col en label_col. |
| wortel-gemiddelde-kwadratische-fout | dubbel | Wortel gemiddelde kwadratische fout tussen prediction_col en label_col. |
| gemiddelde fout | dubbel | Gemiddelde fout tussen prediction_col en label_col. |
| gemiddelde absolute percentagefout | dubbel | Gemiddelde absolute percentagefout tussen prediction_col en label_col. |
| r2_score (coëfficiënt van determinatie) | dubbel | R-kwadraatscore tussen prediction_col en label_col. |
| Kolommen met metrische gegevens - redelijkheid en vooroordelen [6] | ||
| voorspellingsgelijkheid | dubbel | Meet of de twee groepen gelijke precisie hebben voor alle voorspelde klassen.
label_col is vereist. |
| voorspellende gelijkheid | dubbel | Metingen of de twee groepen een gelijk aantal fout-positieven hebben voor alle voorspelde klassen.
label_col is vereist. |
| gelijke kansen | dubbel | Metingen of de twee groepen gelijke overeenkomsten hebben voor alle voorspelde klassen.
label_col is vereist. |
| statistische pariteit | dubbel | Metingen of de twee groepen een gelijke acceptatiesnelheid hebben. Acceptatiepercentage hier wordt gedefinieerd als de empirische waarschijnlijkheid die moet worden voorspeld als een bepaalde klasse, in alle voorspelde klassen. |
[1] Indeling van struct voor confusion_matrix, precision, recall, f1_score en roc_auc_score:
| Kolomnaam | Typ |
|---|---|
| venster | struct<start: timestamp, end: timestamp> |
| frequente_objecten | array<struct<item: string, count: bigint>> |
| confusion_matrix | struct<prediction: string, label: string, count: bigint> |
| precisie | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
| relevante overeenkomsten | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
| F1-score | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
| roc_auc_score | struct<one_vs_one: struct<weighted: double, macro: double>> |
[2] Voor tijdreeks- of deductieprofielen kijkt het profiel 30 dagen terug vanaf het moment dat het profiel wordt gemaakt. Vanwege deze cut-off kan de eerste analyse een gedeeltelijk venster bevatten. De limiet van 30 dagen kan bijvoorbeeld midden in een week of maand vallen, in welk geval de volledige week of maand niet is opgenomen in de berekening. Dit probleem is alleen van invloed op het eerste venster.
[3] De versie die in deze kolom wordt weergegeven, is de versie die is gebruikt om de statistieken in de rij te berekenen en is mogelijk niet de huidige versie van het profiel. Telkens wanneer u de metrische gegevens vernieuwt, probeert het profiel eerder berekende metrische gegevens opnieuw te compileren met behulp van de huidige profielconfiguratie. De huidige profielversie wordt weergegeven in de profielgegevens die worden geretourneerd door de API en python-client.
[4] Voorbeeldcode voor het ophalen van het 50e percentiel: SELECT element_at(quantiles, int((size(quantiles)+1)/2)) AS p50 ... of SELECT quantiles[500] ... .
[5] Alleen weergegeven als het profiel een analysetype heeft InferenceLog en beide label_col en prediction_col zijn opgegeven.
[6] Alleen weergegeven als het profiel een InferenceLog analysetype heeft en problem_typeclassification is.
Schema voor tabel met metrische gegevens voor drift
In de volgende tabel ziet u het schema van de tabel met metrische driftgegevens. De drifttabel wordt alleen gegenereerd als er een basislijntabel wordt opgegeven of als er een opeenvolgend tijdvenster bestaat na aggregatie volgens de opgegeven granulariteiten. Als een metrische waarde niet van toepassing is op een rij, is de bijbehorende cel null.
| Kolomnaam | Typ | Beschrijving |
|---|---|---|
| Kolommen groeperen | ||
| venster | struct<start: timestamp, end: timestamp> |
Tijdvenster. |
| window_cmp | struct<start: timestamp, end: timestamp> |
Vergelijkingsvenster voor drift_type CONSECUTIVE. |
| drift_type | touw | BASISLIJN OF OPEENVOLGEND. Of de metrische driftgegevens vergelijken met het vorige tijdvenster of met de basislijntabel. |
| Granulariteit | touw | Duur van het venster, ingesteld op granularities parameter. [7] |
| model_id_col | touw | Optioneel. Alleen gebruikt voor InferenceLog het analysetype. |
| slice_key | touw | Slice-expressie. NULL voor standaardwaarde, dit zijn alle gegevens. |
| schijfswaarde | touw | De waarde van de segmenteringsexpressie. |
| kolomnaam | touw | Naam van kolom in primaire tabel.
:table is een speciale naam voor metrische gegevens die van toepassing zijn op de hele tabel, zoals modelnauwkeurigheid. |
| gegevenstype | touw | Spark-gegevenstype van column_name. |
| monitorversie | bigint | Versie van de monitorconfiguratie die wordt gebruikt om de metrische gegevens in de rij te berekenen. Zie [8] hieronder voor meer informatie. |
| Kolommen met metrische gegevens - drift | Verschillen worden berekend als huidig venster - vergelijkingsvenster. | |
| count_delta | dubbel | Verschil in count. |
| avg_delta | dubbel | Verschil in avg. |
| percent_null_delta | dubbel | Verschil in percent_null. |
| percent_nul_delta | dubbel | Verschil in percent_zeros. |
| procent_distinct_delta | dubbel | Verschil in percent_distinct. |
| non_null_columns_delta | struct<added: int, missing: int> |
Aantal kolommen met een toename of afname van niet-null-waarden. |
| chi_squared_test | struct<statistic: double, pvalue: double> |
Chi-kwadraatstest voor drift in verdeling. Alleen berekend voor categorische kolommen.
null voor numerieke kolommen. |
| ks_test | struct<statistic: double, pvalue: double> |
KS-test voor drift in distributie. Alleen berekend voor numerieke kolommen.
null voor categorische kolommen. |
| tv-afstand | dubbel | Totale variatieafstand voor afwijking in verdeling. Alleen berekend voor categorische kolommen.
null voor numerieke kolommen. |
| l-infinity afstand | dubbel | L-oneindige afstand voor drift in verdeling. Alleen berekend voor categorische kolommen.
null voor numerieke kolommen. |
| js_distance | dubbel | Jensen-Shannon afstand voor drift in distributie. Alleen berekend voor categorische kolommen.
null voor numerieke kolommen. |
| wasserstein_distance | dubbel | Drift tussen twee numerieke verdelingen met behulp van de metrische afstand van Wasserstein. Alleen berekend voor numerieke kolommen.
null voor categorische kolommen. |
| populatie stabiliteitsindex | dubbel | Metrische waarde voor het vergelijken van de afwijking tussen twee numerieke distributies met behulp van de metrische waarde voor de stabiliteitsindex van de populatie. Zie [9] hieronder voor meer informatie. Alleen berekend voor numerieke kolommen.
null voor categorische kolommen. |
[7] Voor tijdreeks- of deductieprofielen kijkt het profiel 30 dagen terug vanaf het moment dat het profiel wordt gemaakt. Vanwege deze cut-off kan de eerste analyse een gedeeltelijk venster bevatten. De limiet van 30 dagen kan bijvoorbeeld midden in een week of maand vallen, in welk geval de volledige week of maand niet is opgenomen in de berekening. Dit probleem is alleen van invloed op het eerste venster.
[8] De versie die in deze kolom wordt weergegeven, is de versie die is gebruikt om de statistieken in de rij te berekenen en is mogelijk niet de huidige versie van het profiel. Telkens wanneer u de metrische gegevens vernieuwt, probeert het profiel eerder berekende metrische gegevens opnieuw te compileren met behulp van de huidige profielconfiguratie. De huidige profielversie wordt weergegeven in de profielgegevens die worden geretourneerd door de API en python-client.
[9] De uitvoer van de index voor de stabiliteit van de populatie is een numerieke waarde die aangeeft hoe verschillende twee verdelingen zijn. Het bereik is [0, inf). PSI < 0.1 betekent geen significante bevolkingswijziging. PSI < 0.2 duidt op gemiddelde bevolkingsverandering. PSI >= 0,2 geeft een significante bevolkingswijziging aan.