적용 대상:
Databricks SQL
Databricks Runtime
Important
이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
ai_top_drivers() 기여 분석을 위한 표 값 함수입니다. 이 알고리즘은 대조군과 테스트 그룹 간 지표 변화에 가장 크게 기여하는 차원 값 또는 값 쌍을 순위 매깁니다. 이용 가능한 논증은 ' 논증' 을 참조하세요.
요구 사항
- Databricks 런타임 16.1 이상
- Photon이 활성화된 Pro 또는 Serverless SQL 웨어하우스, 또는 Databricks 런타임에서 Photon이 활성화된 클러스터
- Predictive AI Functions 미리보기에서 작업 공간을 등록하세요. 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>세그먼트할 열명들의 집합입니다. 저기수성 수치 열은 정확한 값에 따라 분할됩니다. 고기수성 수치 열은 자동으로 ,medium,high범위로low그룹화됩니다. 이 인수를 생략하면, 함수는 입력에서 상관된 상위 20개의 차원 열을 자동으로 선택합니다. -
aggregation(선택적으로)STRING각 세그먼트 내에서 적용metric할 집계체를 명명하는 것입니다. 지원되는 값은 , , , 및 입니다sumavg.countminmax기본값은sum입니다. -
min_support(선택적으로) 는 0에서 1 사이의 ADOUBLE로, 결과에 나타나기 위해 세그먼트가 포함해야 할 분석 가능한 행의 최소 비율을 나타냅니다. 기본값은0.05입니다.
Returns
이 함수는 다음과 같은 열로 구성된 테이블을 반환합니다:
-
contributor: 그리고ARRAY<STRING>그 세그먼트를 설명하는 내용입니다. 각 원소는 예를 들어 , 또는["pickup_zip=high (>10044)"]["pickup_zip=high (>10044)", "payment_type=CRD"]라는 형태column=value를 사용합니다. -
metric_control: 대조군 내 세그먼트의 집계 지표(is_test=FALSE). -
metric_test: 테스트 그룹 내 세그먼트의 집계 지표(is_test=TRUE). -
change: 절대 차이,metric_test−metric_control. -
relative_change: 의 분수metric_control로서의 변화입니다. -
support: 세그먼트 내 전체 분석 가능한 행의 비율입니다.
결과에는 단일 차원 기여자, 차원 값 쌍, ["all"] 전체 모집단을 요약한 행이 포함됩니다.
예제
다음 예시는 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
메모
집계를 위해서는 count 숫자 열을 제공하여 집계하세요. 와 같은 1 AS trip_count 일정한 열은 흔한 패턴입니다.
Limitations
베타 기간 동안 적용되는 제한 사항은 다음과 같습니다:
- 또는
is_test열에metric값이 있는NULL행은 분석 전에 삭제됩니다. -
count distinct그리고median집계는 지원되지 않습니다. -
MAP그리고STRUCT차원 열은 지지되지 않습니다. 우편번호나 ID와 같은 숫자 식별자는 수량으로 취급되며 범위별로 그룹화될 수 있습니다. 숫자 식별자를 정확한STRING값으로 세그먼트로 캐스팅합니다.