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 wordt beschreven hoe u een aangepaste metriek maakt in gegevensprofilering. Naast de analyse- en driftstatistieken die automatisch worden berekend, kunt u aangepaste metrische gegevens maken. U wilt bijvoorbeeld een gewogen gemiddelde bijhouden dat een bepaald aspect van bedrijfslogica vastlegt of een aangepaste kwaliteitsscore voor modellen gebruikt. U kunt ook aangepaste driftgegevens maken waarmee wijzigingen in de waarden in de primaire tabel worden bijgehouden (vergeleken met de basislijn of het vorige tijdvenster).
Zie de MonitorMetric voor meer informatie over het gebruik van de API.
Typen aangepaste metrieken
Gegevensprofilering bevat de volgende typen aangepaste metrische gegevens:
- Geaggregeerde statistieken, die worden berekend op basis van kolommen in de primaire tabel. Geaggregeerde metrische gegevens worden opgeslagen in de metriekentabel van het profiel.
- Afgeleide metrische gegevens, die worden berekend op basis van eerder berekende statistische metrische gegevens en die niet rechtstreeks gegevens uit de primaire tabel gebruiken. Afgeleide metrische gegevens worden opgeslagen in de tabel met metrische gegevens van het profiel.
- Driftmetrieken, waarmee eerder berekende statistische of afgeleide metrische gegevens uit twee verschillende tijdvensters worden vergeleken, of tussen de primaire tabel en de basislijntabel. Driftgegevens worden opgeslagen in de tabel met driftgegevens.
Als u afgeleide en driftgegevens gebruikt, minimaliseert u waar mogelijk de hercomputatie via de volledige primaire tabel. Alleen geaggregeerde metrische gegevens hebben toegang tot gegevens uit de primaire tabel. Afgeleide en driftgegevens kunnen vervolgens rechtstreeks worden berekend vanuit de cumulatieve metrische waarden.
Aangepaste parameters voor metrische gegevens
Als u een aangepaste metrische waarde wilt definiëren, maakt u een Jinja-sjabloon voor een SQL-kolomexpressie. De tabellen in deze sectie beschrijven de parameters die de metrische gegevens definiëren en de parameters die worden gebruikt in de Jinja-sjabloon.
| Kenmerk | Beschrijving |
|---|---|
type |
Een van MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE, MonitorMetricType.CUSTOM_METRIC_TYPE_DERIVEDof MonitorMetricType.CUSTOM_METRIC_TYPE_DRIFT. |
name |
Kolomnaam voor de aangepaste metrische gegevens in metrische tabellen. |
input_columns |
Lijst met kolomnamen in de invoertabel waarvoor de metrische waarde moet worden berekend. Als u wilt aangeven dat er meer dan één kolom wordt gebruikt in de berekening, gebruikt u :table. Zie de voorbeelden in dit artikel. |
definition |
Jinja-sjabloon voor een SQL-expressie die aangeeft hoe de metrische gegevens moeten worden berekend. Zie Definitie maken. |
output_data_type |
Spark-gegevenstype van de metrische uitvoer in een JSON-tekenreeksindeling. |
Maken definition
De definition parameter moet één tekenreeksexpressie zijn in de vorm van een Jinja-sjabloon. Het mag geen joins of subquery's bevatten.
De volgende tabel bevat de parameters die u kunt gebruiken om een SQL Jinja-sjabloon te maken om op te geven hoe de metrische waarde moet worden berekend.
| Kenmerk | Beschrijving |
|---|---|
{{input_column}} |
Kolom die wordt gebruikt om de aangepaste metrische gegevens te berekenen. |
{{prediction_col}} |
Kolom met ML-modelvoorspellingen. Wordt gebruikt met InferenceLog-analyse. |
{{label_col}} |
Kolom met ML-model grondwaarheidswaarden. Wordt gebruikt met InferenceLog-analyse. |
{{current_df}} |
Voor de drift in vergelijking met het vorige tijdvenster. Gegevens uit het vorige tijdvenster. |
{{base_df}} |
Voor afwijkingen in vergelijking met de basislijntabel. Basislijngegevens. |
Voorbeeld van geaggregeerde metriek
In het volgende voorbeeld wordt het gemiddelde van het kwadraat van de waarden in een kolom berekend en toegepast op kolommen f1 en f2. De uitvoer wordt opgeslagen als een nieuwe kolom in de tabel met metrische gegevens van het profiel en wordt weergegeven in de analyserijen die overeenkomen met de kolommen f1 en f2. De toepasselijke kolomnamen worden vervangen door de Jinja-parameter {{input_column}}.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE,
name="squared_avg",
input_columns=["f1", "f2"],
definition="avg(`{{input_column}}`*`{{input_column}}`)",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Met de volgende code wordt een aangepaste metriek gedefinieerd waarmee het gemiddelde van het verschil tussen kolommen f1 en f2. In dit voorbeeld ziet u het gebruik van [":table"] in de input_columns parameter om aan te geven dat meer dan één kolom uit de tabel wordt gebruikt in de berekening.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE,
name="avg_diff_f1_f2",
input_columns=[":table"],
definition="avg(f1 - f2)",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
In dit voorbeeld wordt een gewogen kwaliteitsscore van het model berekend. Voor waarnemingen waarbij de critical kolom True is, wordt er een zwaardere straf toegewezen wanneer de voorspelde waarde voor die rij niet overeenkomt met de grondwaarheid. Omdat deze is gedefinieerd voor de onbewerkte kolommen (prediction en label), wordt deze gedefinieerd als een statistische metriek. De :table kolom geeft aan dat deze metrische waarde wordt berekend op basis van meerdere kolommen. De Jinja-parameters {{prediction_col}} en {{label_col}} worden vervangen door de naam van de kolommen met voorspellings- en grondwaarlabels voor het profiel.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE,
name="weighted_error",
input_columns=[":table"],
definition="""avg(CASE
WHEN {{prediction_col}} = {{label_col}} THEN 0
WHEN {{prediction_col}} != {{label_col}} AND critical=TRUE THEN 2
ELSE 1 END)""",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Voorbeeld van afgeleide metrische gegevens
Met de volgende code wordt een aangepaste metrische waarde gedefinieerd waarmee de vierkantswortel wordt berekend van de squared_avg metrische waarde die eerder in deze sectie is gedefinieerd. Omdat dit een afgeleide metriek is, verwijst deze niet naar de primaire tabelgegevens en wordt in plaats daarvan gedefinieerd in termen van de squared_avg statistische metrische gegevens. De uitvoer wordt opgeslagen als een nieuwe kolom in de tabel met metrische gegevens van het profiel.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_DERIVED,
name="root_mean_square",
input_columns=["f1", "f2"],
definition="sqrt(squared_avg)",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Voorbeeld van driftgegevens
Met de volgende code wordt een driftmetriek gedefinieerd waarmee de wijziging wordt bijgehouden in de weighted_error metrische waarde die eerder in deze sectie is gedefinieerd. Met de parameters {{current_df}} en {{base_df}} kan de metriek verwijzen naar de weighted_error waarden uit het huidige venster en het vergelijkingsvenster. Het vergelijkingsvenster kan de basislijngegevens of de gegevens uit het vorige tijdvenster zijn. Driftmetrieken worden opgeslagen in de driftmetriektabel.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_DRIFT,
name="error_rate_delta",
input_columns=[":table"],
definition="{{current_df}}.weighted_error - {{base_df}}.weighted_error",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)