funktion ai_top_drivers

gäller för:markerad med ja Databricks SQL markerad med ja Databricks Runtime

Important

Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.

ai_top_drivers() är en tabellvärd funktion för bidragsanalys. Den rangordnar dimensionsvärden, eller par av värden, som bidrar mest till en förändring i en metrik mellan en kontrollgrupp och en testgrupp. Se Argument för tillgängliga argument.

Kravspecifikation

  • Databricks Runtime 16.1 eller högre
  • Pro eller Serverless SQL warehouse med Photon aktiverat, eller ett Photon-aktiverat kluster på Databricks Runtime
  • Registrera din arbetsyta i förhandsvisningen av Predictive AI Functions . Se Hantera förhandsversioner av Azure Databricks.

Syntax

ai_top_drivers(input => input, metric => metric, is_test => is_test
  [, optional_param ] [...])

optional_param:
  { dimensions => dimensions |
    aggregation => aggregation |
    min_support => min_support }

Argument

Skicka alla argument vid namn.

  • input är den tabellvärda indata att analysera. Tillhandahåll en tabell eller delfråga med metrikkolumnen, dimensionskolumnerna och testetikettens kolumn.
  • metric är en namngivning STRING av den numeriska kolumnen som ska analyseras. Kolumnen måste ha en numerisk typ.
  • is_test är en STRING namngivning av en boolesk kolumn som märker varje rad. TRUE markerar testdelningen och FALSE markerar kontrolluppdelningen.
  • dimensions (valfritt) är en ARRAY<STRING> av kolumnnamn att segmentera på. Numeriska kolumner med låg kardinalitet är segmenterade efter exakta värden. Numeriska kolumner med hög kardinalitet grupperas automatiskt i low, medium, och high intervall. Om du utelämnar detta argument väljer funktionen automatiskt de 20 översta korrelerade dimensionskolumnerna från indatan.
  • aggregation (valfritt) är en namngivning STRING av aggregatet som ska tillämpas inom metric varje segment. Värden som stöds är sum, avg, count, minoch max. Standardvärdet är sum.
  • min_support (valfritt) är en DOUBLE mellan 0 och 1 som representerar den minsta andelen analyserbara rader som ett segment måste täcka för att synas i resultaten. Standardvärdet är 0.05.

Returns

Funktionen returnerar en tabell med följande kolumner:

  • contributor: Och ARRAY<STRING> som beskriver segmentet. Varje element använder formen column=value, till exempel ["pickup_zip=high (>10044)"] eller ["pickup_zip=high (>10044)", "payment_type=CRD"].
  • metric_control: Den aggregerade metriken för segmentet i kontrollgruppen (is_test = FALSE).
  • metric_test: Den aggregerade metriken för segmentet i testgruppen (is_test = TRUE).
  • change: Den absoluta skillnaden, metric_testmetric_control.
  • relative_change: Förändringen som en bråkdel av metric_control.
  • support: Andelen av totala analyserbara rader i segmentet.

Resultaten inkluderar bidragsgivare i en dimension, par av dimensionsvärden och en ["all"] rad som sammanfattar hela populationen.

Examples

Följande exempel jämför den totala biljettintäkterna mellan januari och februari 2016 och hittar de upphämtningsnummerintervall som bidrar mest till förändringen:

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

Följande exempel räknar resor över avlämningspostnummerområden mellan samma perioder:

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

För count aggregering, ange en numerisk kolumn att räkna med. En konstant kolumn som är 1 AS trip_count ett vanligt mönster.

Limitations

Följande begränsningar gäller under beta:

  • Rader med ett NULL värde i metric eller is_test eller tas bort innan analysen.
  • count distinct och median aggregat stöds inte.
  • MAP och STRUCT dimensionskolumner stöds inte. Numeriska identifierare, såsom postnummer och ID:n, behandlas som kvantiteter och kan grupperas i intervall. Kasta numeriska identifierare för STRING att segmentera efter exakt värde.