ai_top_drivers funkcja

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Ważna

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

ai_top_drivers() jest funkcją tabelową do analizy wkładu. Klasyfikuje wartości wymiarowe, czyli pary wartości, które najbardziej przyczyniają się do zmiany metryki między grupą kontrolną a grupą testową. Zobacz Argumenty , aby poznać dostępne argumenty.

Wymagania

Składnia

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

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

Argumenty

Przekażcie wszystkie argumenty po imieniu.

  • input to dane wejściowe o wartości tabelowej do analizy. Dostarcz tabelę lub podzapytanie z kolumną metryki, kolumnami wymiarów oraz kolumną etykiety testowej.
  • metric to STRING nazywanie kolumny liczbowej do analizy. Kolumna musi mieć typ numeryczny.
  • is_test to STRING nazwanie kolumny boole'a, która oznacza każdy wiersz. TRUE oznacza podział testowy i FALSE kontrolny.
  • dimensions (opcjonalnie) to nazwa ARRAY<STRING> kolumn do segmentacji. Kolumny liczbowe o niskiej kardynalności są podzielone na wartości dokładne. Kolumny liczbowe o wysokiej kardynalności są automatycznie grupowane w , lowmedium, i high zakresy. Jeśli pominiesz ten argument, funkcja automatycznie wybiera 20 górnych kolumn skorelowanych wymiarów z wejścia.
  • aggregation (opcjonalnie) to STRING nazwanie agregatu, który ma się stosować w metric każdym segmencie. Obsługiwane wartości to sum, avg, count, mini max. Wartość domyślna to sum.
  • min_support (opcjonalnie) to przedział DOUBLE między 0 a 1, reprezentujący minimalny ułamek analizowalnych wierszy, które segment musi pokryć, aby pojawić się w wynikach. Wartość domyślna to 0.05.

Zwroty

Funkcja zwraca tabelę z następującymi kolumnami:

  • contributor: To ARRAY<STRING> opisuje ten segment. Każdy element używa formy column=value, na przykład ["pickup_zip=high (>10044)"] lub ["pickup_zip=high (>10044)", "payment_type=CRD"].
  • metric_control: Zagregowana metryka dla segmentu w grupie kontrolnej (is_test = FALSE).
  • metric_test: Zagregowana metryka dla segmentu w grupie testowej (is_test = TRUE).
  • change: Absolutna różnica, metric_testmetric_control.
  • relative_change: Zmiana jako ułamek metric_control.
  • support: Ułamek wszystkich analizowalnych wierszy w segmencie.

Wyniki obejmują współtwórców jednowymiarowych, pary wartości wymiarowych oraz ["all"] wiersz podsumowujący całą populację.

Examples

Poniższy przykład porównuje całkowite przychody z opłat w okresie od stycznia do lutego 2016 roku i wskazuje zakresy kodów pocztowych odbioru, które najbardziej przyczyniają się do zmiany:

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

Poniższy przykład liczy przejazdy w zakresie kodów pocztowych w tych samych okresach:

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

Do count agregacji należy podać kolumnę liczbową do liczenia. Stała kolumna taka jak jest 1 AS trip_count wzorcem powszechnym.

Ograniczenia

Podczas bety obowiązują następujące ograniczenia:

  • Wiersze z wartością NULL w kolumnie metric or is_test są usuwane przed analizą.
  • count distinct a median agregaty nie są wspierane.
  • MAP STRUCT a kolumny wymiarowe nie są podtrzymywane. Identyfikatory numeryczne, takie jak kody pocztowe i ID, traktowane są jako wielkości i mogą być grupowane w zakresy. Rzuć identyfikatory numeryczne do STRING segmentacji według dokładnej wartości.