Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
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é umSTRINGnome da coluna numérica a ser analisada. A coluna deve ter um tipo numérico. -
is_testé umSTRINGnomear uma coluna booleana que rotulou cada linha.TRUEmarca a divisão do teste eFALSEa divisão do controle. -
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 você omitir esse argumento, a função seleciona automaticamente as 20 colunas de dimensão correlacionadas superiores da entrada. -
aggregation(opcional) é umSTRINGnome do agregado a ser aplicadometricdentro de cada segmento. Os valores suportados são , , , esumavg.countminmaxO padrã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. O padrão é0.05.
Returns
A função retorna 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 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_test−metric_control. -
relative_change: A mudança como fração demetric_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
NULLvalor nametriccoluna ouis_testsão descartadas antes da análise. -
count distinctemedianagregados não são suportados. -
MAPeSTRUCTcolunas 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 paraSTRINGsegmentar por valor exato.