ai_top_drivers 函數

適用於:勾選為「是」Databricks SQL 勾選為「是」Databricks Runtime

Important

這項功能位於 測試版 (Beta) 中。 工作區管理員可以從 「預覽 」頁面控制對此功能的存取。 請參閱 管理 Azure Databricks 預覽。

ai_top_drivers() 是一個用於貢獻分析的表值函數。 它會對控制組與測試組之間指標變化貢獻最大的維度值或數值對進行排序。 請參閱「 論證」 以了解可用的論點。

需求

  • Databricks 執行環境 16.1 或更高版本
  • 啟用 Photon 的 Pro 或無伺服器 SQL 倉庫,或是 Databricks 執行環境上的支援 Photon 叢集
  • 請在預測 AI 功能 預覽中註冊您的工作空間。 請參閱 管理 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 }

引數

把所有論點都以名字傳達。

  • input 是要分析的表格值輸入。 提供一個包含度量欄、維度欄和測試標籤欄的表格或子查詢。
  • metric 是 STRING 命名要分析的數值欄位。 欄位必須有數字類型。
  • is_test 是 STRING 命名一個標記每一列的布林欄位。 TRUE 標記測試分段,標記 FALSE 控制分段。
  • dimensions (可選)是 ARRAY<STRING> 一組欄位名稱,供分段。 低基數數欄位依精確值分割。 高基數數欄位會自動分為 low、 medium和 high 區間。 如果你省略這個參數,函式會自動從輸入中選擇前 20 個相關的維度欄位。
  • aggregation (可選)是指 STRING 在每個區段內為要套用 metric 的聚合命名。 支援值為 sum、 avg、 countmin、 max和 。 預設值為 sum。
  • min_support (可選)是介於0到1之間的 a DOUBLE ,代表一段必須覆蓋的可分析行的最小比例,才能出現在結果中。 預設值為 0.05。

Returns

該函式回傳一個包含以下欄位的表格:

  • contributor:描述 ARRAY<STRING> 該段落。 每個元素使用的形式 column=value為 ,例如 ["pickup_zip=high (>10044)"]["pickup_zip=high (>10044)", "payment_type=CRD"]或 。
  • metric_control:對照組中該區段的聚合指標(is_test = FALSE)。
  • metric_test:測試組中該區段的彙總指標(is_test = TRUE)。
  • change:絕對差, metric_test − metric_control。
  • relative_change:變化為 的 metric_control分數。
  • support:該段中可分析行總數的比例。

結果包括單維貢獻者、維度值對,以及 ["all"] 一列總結完整母體的資料。

Examples

以下範例比較了2016年1月至2月的總票價收入,並找出對變更貢獻最大的自取郵遞區號範圍:

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

以下範例統計同一期間內不同投遞郵遞區號範圍的出行次數:

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

彙 count 總時,提供一個數值欄位來計數。 像 這樣的 1 AS trip_count 恆定柱是常見的模式。

局限性

測試版期間有以下限制:

  • 欄位中值NULLmetric為 or is_test 的列在分析前會被刪除。
  • count distinct 且 median 不支援聚合。
  • MAP STRUCT且不支援維度欄位。 數字識別碼,如郵遞區號和識別碼,被視為數量,並可分組到不同範圍。 將數字識別符鑄造為 STRING 精確值區段。