Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
Important
Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
ai_top_drivers() est une fonction à valeurs de table pour l’analyse des contributions. Il classe les valeurs dimensionnelles, ou paires de valeurs, qui contribuent le plus à un changement d’une métrique entre un groupe contrôle et un groupe test. Voir Arguments pour les arguments disponibles.
Spécifications
- Databricks Runtime 16.1 ou supérieur
- Pro ou entrepôt SQL Serverless avec Photon activé, ou un cluster compatible Photon sur Databricks Runtime
- Inscrivez votre espace de travail dans l’aperçu des fonctions d’IA prédictives . Consultez Gérer les préversions d’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 }
Arguments
Faites passer tous les arguments par nom.
-
inputest l’entrée à valeurs de table à analyser. Fournissez un tableau ou une sous-requête avec la colonne métrique, les colonnes de dimension et la colonne de l’étiquette de test. -
metricest unSTRINGnom de la colonne numérique à analyser. La colonne doit avoir un type numérique. -
is_testest unSTRINGnom d’une colonne booléenne qui étiquete chaque ligne.TRUEmarque la division test etFALSEla division de contrôle. -
dimensions(optionnel) est unARRAY<STRING>des noms de colonnes à segmenter. Les colonnes numériques de faible cardinalité sont segmentées par valeur exacte. Les colonnes numériques de haute cardinalité sont automatiquement regroupées enlow,medium, ethighplages. Si vous omets cet argument, la fonction sélectionne automatiquement les 20 premières colonnes de dimension corrélées de l’entrée. -
aggregation(optionnel) est unSTRINGdénom de l’agrégat à appliquermetricau sein de chaque segment. Les valeurs prises en charge sontsum,avg,count,minetmax. La valeur par défaut estsum. -
min_support(optionnel) est unDOUBLEentre 0 et 1 représentant la fraction minimale de lignes analysables qu’un segment doit couvrir pour apparaître dans les résultats. La valeur par défaut est0.05.
Returns
La fonction renvoie un tableau avec les colonnes suivantes :
-
contributor: EtARRAY<STRING>qui décrit le segment. Chaque élément utilise la formecolumn=value, par exemple["pickup_zip=high (>10044)"]ou["pickup_zip=high (>10044)", "payment_type=CRD"]. -
metric_control: La métrique agrégée pour le segment du groupe témoin (is_test=FALSE). -
metric_test: La métrique agrégée pour le segment du groupe de test (is_test=TRUE). -
change: La différence absolue,metric_test−metric_control. -
relative_change: Le changement en une fraction demetric_control. -
support: La fraction totale des lignes analysables dans le segment.
Les résultats incluent des contributeurs monodimensionnels, des paires de valeurs dimensionnelles, et une ["all"] ligne qui résume la population complète.
Examples
L’exemple suivant compare le chiffre d’affaires total des tarifs entre janvier et février 2016 et identifie les plages de codes postaux pour la prise en charge qui contribuent le plus à ce changement :
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
L’exemple suivant compte les trajets à travers les plages de code postal de dépôt entre les mêmes périodes :
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
Pour l’agrégation count , prévoyez une colonne numérique à compter. Une colonne constante telle que 1 AS trip_count est un motif courant.
Limitations
Les limitations suivantes s’appliquent pendant la bêta :
- Les lignes avec une
NULLvaleur dans lametriccolonne ouis_testsont supprimées avant l’analyse. -
count distinctetmedianles agrégats ne sont pas pris en charge. -
MAPetSTRUCTles colonnes de dimension ne sont pas prises en charge. Les identifiants numériques, tels que les codes postaux et les identifiants, sont considérés comme des quantités et peuvent être regroupés en plages. Castez les identifiants numériques pourSTRINGsegmenter par valeur exacte.