適用対象:
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>です。 低濃度の数値列は正確な値で区切られます。 高濃度の数値列は自動的にlow、medium、highの範囲に分類されます。 この引数を省略すると、関数は入力から上位20の相関次元列を自動的に選択します。 -
aggregation(オプション)は各セグメント内のアグリゲートをSTRINGに適用する名前を付けるmetricです。 サポートされる値は、sum、avg、count、min、および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_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のような一定列はよくあるパターンです。
制限事項
ベータ期間中に適用される制限は以下の通りです:
-
NULL列またはmetric列にis_test値の行は分析前に削除されます。 -
count distinctmedian集計はサポートされていません。 -
MAPまたSTRUCT次元列はサポートされていません。 郵便番号やIDなどの数値識別子は数量として扱われ、範囲ごとにグループ化されることがあります。 正確な値で数値識別子をキャスティングし、STRINGセグメントに割り当てます。