ai_top_drivers 함수

적용 대상:확인 표시 '예' Databricks SQL 확인 표시 '예' Databricks Runtime

Important

이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.

ai_top_drivers() 기여 분석을 위한 표 값 함수입니다. 이 알고리즘은 대조군과 테스트 그룹 간 지표 변화에 가장 크게 기여하는 차원 값 또는 값 쌍을 순위 매깁니다. 이용 가능한 논증은 ' 논증' 을 참조하세요.

요구 사항

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 는 분석할 테이블 값 입력입니다. 메트릭 열, 차원 열, 테스트 라벨 열이 포함된 테이블 또는 하위 쿼리를 제공합니다.
  • metricSTRING 분석할 수 있는 숫자 열의 명명입니다. 열은 숫자 타입이어야 합니다.
  • is_testSTRING 행을 표시하는 불리언 열의 명명입니다. TRUE 테스트 스플릿과 FALSE 컨트롤 스플릿을 표시합니다.
  • dimensions (선택적으로) 는 ARRAY<STRING> 세그먼트할 열명들의 집합입니다. 저기수성 수치 열은 정확한 값에 따라 분할됩니다. 고기수성 수치 열은 자동으로 , medium, high 범위로 low그룹화됩니다. 이 인수를 생략하면, 함수는 입력에서 상관된 상위 20개의 차원 열을 자동으로 선택합니다.
  • aggregation (선택적으로) STRING 각 세그먼트 내에서 적용 metric 할 집계체를 명명하는 것입니다. 지원되는 값은 , , , 및 입니다sumavg. countminmax 기본값은 sum입니다.
  • min_support (선택적으로) 는 0에서 1 사이의 A DOUBLE 로, 결과에 나타나기 위해 세그먼트가 포함해야 할 분석 가능한 행의 최소 비율을 나타냅니다. 기본값은 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_testmetric_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 값으로 세그먼트로 캐스팅합니다.