Funzione ai_top_drivers

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

ai_top_drivers() è una funzione a valori di tabella per l'analisi del contributo. Classifica i valori dimensionali, o coppie di valori, che contribuiscono maggiormente a un cambiamento di metrica tra un gruppo di controllo e un gruppo di test. Vedi Argomentazioni per gli argomenti disponibili.

Requisiti

  • Databricks Runtime 16.1 o superiore
  • Pro o Serverless SQL warehouse con Photon abilitato, oppure un cluster abilitato a Photon su Databricks Runtime
  • Iscrivi il tuo spazio di lavoro nell'anteprima delle Funzioni AI Predittive . Vedere Gestire le anteprime di 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 }

Argomenti

Passa tutti gli argomenti per nome.

  • input è l'input a valori di tabella da analizzare. Fornisci una tabella o sottoquery con la colonna metrica, le colonne dimensionali e la colonna dell'etichetta di test.
  • metric è un STRING nome della colonna numerica da analizzare. La colonna deve avere un tipo numerico.
  • is_test è un STRING nome di una colonna booleana che etichetta ogni riga. TRUE segna la divisione del test e FALSE la divisione dei controlli.
  • dimensions (opzionale) è un ARRAY<STRING> nome di colonne su cui segmentare. Le colonne numeriche a bassa cardinalità sono segmentate per valore esatto. Le colonne numeriche ad alta cardinalità sono automaticamente raggruppate in low, medium, e high intervalli. Se si omette questo argomento, la funzione seleziona automaticamente le prime 20 colonne di dimensione correlate dall'input.
  • aggregation (opzionale) è una STRING denominazione dell'aggregato a cui applicare metric all'interno di ogni segmento. I valori supportati sono sum, avg, count, mine max. Il valore predefinito è sum.
  • min_support (opzionale) è un DOUBLE tra 0 e 1 che rappresenta la frazione minima di righe analizzabili che un segmento deve coprire per apparire nei risultati. Il valore predefinito è 0.05.

Returns

La funzione restituisce una tabella con le seguenti colonne:

  • contributor: E ARRAY<STRING> che descrive il segmento. Ogni elemento usa la forma column=value, ad esempio ["pickup_zip=high (>10044)"] o ["pickup_zip=high (>10044)", "payment_type=CRD"].
  • metric_control: La metrica aggregata per il segmento nel gruppo di controllo (is_test = FALSE).
  • metric_test: La metrica aggregata per il segmento nel gruppo di test (is_test = TRUE).
  • change: La differenza assoluta, metric_testmetric_control.
  • relative_change: Il cambiamento come frazione di metric_control.
  • support: La frazione del totale delle righe analizzabili nel segmento.

I risultati includono contributori monodimensionali, coppie di valori dimensionali e una ["all"] riga che riassume l'intera popolazione.

Esempi

Il seguente esempio confronta il fatturato totale delle tariffe tra gennaio e febbraio 2016 e trova le fasce di codici postali per il ritiro che contribuiscono maggiormente al cambiamento:

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

Il seguente esempio conta i viaggi tra intervalli di codici postali di consegna negli stessi periodi:

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

Annotazioni

Per l'aggregazione count , fornire una colonna numerica da contare. Una colonna costante come 1 AS trip_count è un modello comune.

Limitations

Durante la Beta si applicano le seguenti limitazioni:

  • Le righe con un NULL valore nella metric colonna o is_test vengono eliminate prima dell'analisi.
  • count distinct e median gli aggregati non sono supportati.
  • MAP e STRUCT le colonne di dimensione non sono supportate. Gli identificatori numerici, come codici postali e ID, sono trattati come quantità e possono essere raggruppati in intervalli. Converti gli identificatori numerici in STRING per segmentare per valore esatto.