ai_top_drivers Função

Aplica-se a:seleção marcada sim Databricks SQL seleção marcada sim Databricks Runtime

Importante

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.

ai_top_drivers() é uma função com valores em tabela para análise de contribuição. Classifica valores de dimensão, ou pares de valores, que mais contribuem para uma alteração numa métrica entre um grupo de controlo e um grupo de teste. Consulte Argumentos para os argumentos disponíveis.

Requirements

  • Databricks Runtime 16.1 ou superior
  • Pro ou Serverless SQL warehouse com Photon ativado, ou um cluster com Photon no Databricks Runtime
  • Inscreva o seu espaço de trabalho na pré-visualização de Funções Preditivas de IA . Ver Gerir as pré-visualizações de Azure Databricks.

Sintaxe

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

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

Argumentos

Passe todos os argumentos pelo nome.

  • input é a entrada com valores de tabela a analisar. Forneça uma tabela ou subconsulta com a coluna da métrica, as colunas de dimensão e a coluna do rótulo de teste.
  • metric é um STRING nome da coluna numérica a analisar. A coluna deve ter um tipo numérico.
  • is_test é nomear STRING uma coluna booleana que rotulou cada linha. TRUE marca a divisão de teste e FALSE marca a divisão de controlo.
  • dimensions (opcional) é um ARRAY<STRING> dos nomes das colunas para segmentar. Colunas numéricas de baixa cardinalidade são segmentadas por valor exato. Colunas numéricas de alta cardinalidade são automaticamente agrupadas em low, medium, e high intervalos. Se omitir este argumento, a função seleciona automaticamente as 20 colunas de dimensão correlacionadas superiores da entrada.
  • aggregation (opcional) é um STRING nome do agregado a aplicar metric dentro de cada segmento. Os valores suportados são , , , e sumavg. countminmax A predefinição é sum.
  • min_support (opcional) é um DOUBLE entre 0 e 1 que representa a fração mínima de linhas analisáveis que um segmento deve cobrir para aparecer nos resultados. A predefinição é 0.05.

Devoluções

A função devolve uma tabela com as seguintes colunas:

  • contributor: E ARRAY<STRING> que descreve o segmento. Cada elemento usa a forma column=value, por exemplo ["pickup_zip=high (>10044)"] ou ["pickup_zip=high (>10044)", "payment_type=CRD"].
  • metric_control: A métrica agregada para o segmento no grupo de controlo (is_test = FALSE).
  • metric_test: A métrica agregada para o segmento no grupo de teste (is_test = TRUE).
  • change: A diferença absoluta, metric_testmetric_control.
  • relative_change: A alteração como fração de metric_control.
  • support: A fração total de linhas analisáveis no segmento.

Os resultados incluem contribuintes de dimensão única, pares de valores de dimensão e uma ["all"] linha que resume a população completa.

Examples

O exemplo seguinte compara a receita total de tarifas entre janeiro e fevereiro de 2016 e encontra os intervalos de códigos postais para recolha que mais contribuem para a alteração:

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

O exemplo seguinte conta as viagens entre intervalos de códigos postais de entrega entre os mesmos períodos:

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

Para count agregação, forneça uma coluna numérica para contar. Uma coluna constante como 1 AS trip_count é um padrão comum.

Limitações

As seguintes limitações aplicam-se durante a Beta:

  • As linhas com valor NULL na metric coluna ou is_test são eliminadas antes da análise.
  • count distinct e median agregados não são suportados.
  • MAP e STRUCT colunas de dimensão não são suportadas. Identificadores numéricos, como códigos postais e IDs, são tratados como quantidades e podem ser agrupados em intervalos. Conjure identificadores numéricos para STRING segmentar por valor exato.