ai_top_drivers 関数

適用対象:チェック済み: はい Databricks SQLチェック済み: はい Databricks Runtime

Important

この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。

ai_top_drivers() は寄与分析のためのテーブル値関数です。 これは、対照群とテスト群の間で指標の変化に最も大きく寄与する次元値、すなわち値のペアをランク付けします。 利用可能な議論については 「議論」 を参照してください。

Requirements

  • Databricks Runtime 16.1 以上
  • Photonが有効であるProまたはServerless SQLウェアハウス、またはDatabricksランタイム上のPhoton対応クラスタ
  • Predictive AI Functionsプレビューでワークスペースを登録してください。 Manage 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> です。 低濃度の数値列は正確な値で区切られます。 高濃度の数値列は自動的に lowmediumhigh の範囲に分類されます。 この引数を省略すると、関数は入力から上位20の相関次元列を自動的に選択します。
  • aggregation(オプション)は各セグメント内のアグリゲートをSTRINGに適用する名前を付ける metric です。 サポートされる値は、 sumavgcountmin、および maxです。 既定値は sum です。
  • min_support (任意)は0から1の間の DOUBLE で、結果に表示されるためにセグメントがカバーしなければならない最小限の解析可能な行の割合を表します。 既定値は 0.05 です。

返品

この関数は以下の列からなるテーブルを返します:

  • 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_testmetric_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のような一定列はよくあるパターンです。

制限事項

ベータ期間中に適用される制限は以下の通りです:

  • NULL列またはmetric列にis_test値の行は分析前に削除されます。
  • count distinct median集計はサポートされていません。
  • MAP また STRUCT 次元列はサポートされていません。 郵便番号やIDなどの数値識別子は数量として扱われ、範囲ごとにグループ化されることがあります。 正確な値で数値識別子をキャスティングし、 STRING セグメントに割り当てます。