Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
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é umSTRINGnome da coluna numérica a analisar. A coluna deve ter um tipo numérico. -
is_testé nomearSTRINGuma coluna booleana que rotulou cada linha.TRUEmarca a divisão de teste eFALSEmarca a divisão de controlo. -
dimensions(opcional) é umARRAY<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 emlow,medium, ehighintervalos. Se omitir este argumento, a função seleciona automaticamente as 20 colunas de dimensão correlacionadas superiores da entrada. -
aggregation(opcional) é umSTRINGnome do agregado a aplicarmetricdentro de cada segmento. Os valores suportados são , , , esumavg.countminmaxA predefinição ésum. -
min_support(opcional) é umDOUBLEentre 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: EARRAY<STRING>que descreve o segmento. Cada elemento usa a formacolumn=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_test−metric_control. -
relative_change: A alteração como fração demetric_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
NULLnametriccoluna ouis_testsão eliminadas antes da análise. -
count distinctemedianagregados não são suportados. -
MAPeSTRUCTcolunas 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 paraSTRINGsegmentar por valor exato.