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.
Van toepassing op:
Databricks SQL
Databricks Runtime
Important
Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.
ai_top_drivers() is een tabelwaardige functie voor bijdrageanalyse. Het rangschikt dimensiewaarden, of paren van waarden, die het meest bijdragen aan een verandering in een metriek tussen een controlegroep en een testgroep. Zie Argumenten voor beschikbare argumenten .
Requirements
- Databricks Runtime 16.1 of hoger
- Pro of Serverless SQL warehouse met Photon ingeschakeld, of een Photon-geactiveerde cluster op Databricks Runtime
- Schrijf je werkruimte in in de previewversie van Predictive AI Functions . Zie Azure Databricks previews beheren.
Syntax
ai_top_drivers(input => input, metric => metric, is_test => is_test
[, optional_param ] [...])
optional_param:
{ dimensions => dimensions |
aggregation => aggregation |
min_support => min_support }
Argumenten
Geef alle argumenten bij naam door.
-
inputis de tabelwaarde invoer om te analyseren. Bied een tabel of subquery met de metriekkolom, dimensiekolommen en de testlabelkolom. -
metricis eenSTRINGnaamgeving van de numerieke kolom die geanalyseerd moet worden. De kolom moet een numeriek type hebben. -
is_testis eenSTRINGnaam van een booleaanse kolom die elke rij labelt.TRUEmarkeert de testsplitsing enFALSEmarkeert de controlesplitsing. -
dimensions(optioneel) is eenARRAY<STRING>van kolomnamen om op te segmenteren. Numerieke kolommen met lage kardinaliteit zijn gesegmenteerd op exacte waarde. Numerieke kolommen met hoge kardinaliteit worden automatisch gegroepeerd inlow,medium, enhighbereiken. Als je dit argument weglaat, selecteert de functie automatisch de top 20 kolommen van gecorreleerde dimensies uit de invoer. -
aggregation(optioneel) is eenSTRINGnaamgeving van het aggregaat waarop binnen elk segment wordt toegepastmetric. Ondersteunde waarden zijnsum,avg,count,minenmax. De standaardwaarde issum. -
min_support(optioneel) is eenDOUBLEtussen 0 en 1, die het minimale aandeel analyseerbare rijen vertegenwoordigt dat een segment moet dekken om in de resultaten te verschijnen. De standaardwaarde is0.05.
Returns
De functie geeft een tabel met de volgende kolommen terug:
-
contributor: EnARRAY<STRING>dat beschrijft het segment. Elk element gebruikt bijvoorbeeld de vormcolumn=value,["pickup_zip=high (>10044)"]of["pickup_zip=high (>10044)", "payment_type=CRD"]. -
metric_control: De geaggregeerde metriek voor het segment in de controlegroep (is_test=FALSE). -
metric_test: De geaggregeerde metriek voor het segment in de testgroep (is_test=TRUE). -
change: Het absolute verschil,metric_test−metric_control. -
relative_change: De verandering als een fractie vanmetric_control. -
support: Het aandeel van de totale analyseerbare rijen in het segment.
De resultaten omvatten bijdragers uit één dimensie, paren van dimensiewaarden en een ["all"] rij die de volledige populatie samenvat.
Examples
Het volgende voorbeeld vergelijkt de totale tariefopbrengst tussen januari en februari 2016 en vindt de postcodebereiken die het meest bijdragen aan de verandering:
WITH input AS (
SELECT
pickup_zip,
fare_amount,
CASE
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-01-31' THEN false
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-02-01' AND '2016-02-29' THEN true
ELSE NULL
END AS is_test
FROM samples.nyctaxi.trips
WHERE DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-02-29'
)
SELECT *
FROM ai_top_drivers(
input => TABLE(input),
metric => 'fare_amount',
is_test => 'is_test',
dimensions => ARRAY('pickup_zip'),
aggregation => 'sum'
)
ORDER BY ABS(change) DESC
Het volgende voorbeeld telt reizen over afleverpostcodegebieden tussen dezelfde periodes:
WITH input AS (
SELECT
dropoff_zip,
1 AS trip_count,
CASE
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-01-31' THEN false
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-02-01' AND '2016-02-29' THEN true
ELSE NULL
END AS is_test
FROM samples.nyctaxi.trips
WHERE DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-02-29'
)
SELECT *
FROM ai_top_drivers(
input => TABLE(input),
metric => 'trip_count',
is_test => 'is_test',
dimensions => ARRAY('dropoff_zip'),
aggregation => 'count'
)
ORDER BY ABS(change) DESC
Note
Voor count aggregatie geef je een numerieke kolom om te tellen. Een constante kolom zoals is 1 AS trip_count een veelvoorkomend patroon.
Limitations
De volgende beperkingen gelden tijdens de bèta:
- Rijen met een
NULLwaarde in demetrickolom ofis_testworden verwijderd vóór de analyse. -
count distinctenmedianaggregaten worden niet ondersteund. -
MAPenSTRUCTdimensiekolommen worden niet ondersteund. Numerieke identificaties, zoals postcodes en ID's, worden behandeld als hoeveelheden en kunnen worden gegroepeerd in bereiken. Gooi numerieke identificaties omSTRINGte segmenteren op exact de waarde.