ai_top_drivers Função

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

Importante

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

ai_top_drivers() é uma função de tabela para análise de contribuição. Ela classifica valores de dimensão, ou pares de valores, que mais contribuem para uma mudança em uma métrica entre um grupo controle e um grupo de teste. Veja Argumentos para os argumentos disponíveis.

Requirements

  • Databricks Runtime 16.1 ou superior
  • Pro ou Serverless SQL warehouse com Photon ativado, ou um cluster habilitado para Photon no Databricks Runtime
  • Inscreva seu espaço de trabalho na prévia de Funções de IA Preditiva . Consulte Gerenciar visualizações do 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 valor de tabela a ser analisada. Forneça uma tabela ou subconsulta com a coluna métrica, as colunas de dimensão e a coluna do rótulo de teste.
  • metric é um STRING nome da coluna numérica a ser analisada. A coluna deve ter um tipo numérico.
  • is_test é um STRING nomear uma coluna booleana que rotulou cada linha. TRUE marca a divisão do teste e FALSE a divisão do controle.
  • 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 você omitir esse argumento, a função seleciona automaticamente as 20 colunas de dimensão correlacionadas superiores da entrada.
  • aggregation (opcional) é um STRING nome do agregado a ser aplicado metric dentro de cada segmento. Os valores suportados são , , , e sumavg. countminmax O padrã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. O padrão é 0.05.

Returns

A função retorna 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 controle (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 mudança como fração de metric_control.
  • support: A fração total de linhas analisáveis no segmento.

Os resultados incluem contribuintes monodimensionais, pares de valores dimensionais e uma ["all"] linha que resume toda a população.

Exemplos

O exemplo a seguir compara a receita total de tarifas entre janeiro e fevereiro de 2016 e encontra as faixas de códigos postais para o embarque que mais contribuem para a mudança:

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 a seguir 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 se aplicam durante a versão Beta:

  • Linhas com NULL valor na metric coluna ou is_test são descartadas 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 CEPs e IDs, são tratados como quantidades e podem ser agrupados em intervalos. Conjure identificadores numéricos para STRING segmentar por valor exato.