ML.LABEL_ENCODER 함수

이 문서에서는 문자열 표현식을 [0, <number of categories>]INT64 값에 인코딩하는 데 사용할 수 있는 ML.LABEL_ENCODER 함수를 설명합니다.

인코딩 어휘는 알파벳순으로 정렬됩니다. 어휘에 없는 NULL 값과 카테고리는 0으로 인코딩됩니다.

TRANSFORM에 사용될 때 학습 중에 계산된 어휘 값과 지정한 상위 k 및 빈도 임곗값은 예측에 자동으로 사용됩니다.

구문

ML.LABEL_ENCODER(string_expression [, top_k] [, frequency_threshold]) OVER()

ML.LABEL_ENCODER는 다음 인수를 사용합니다.

  • string_expression: 인코딩할 STRING 표현식입니다.
  • top_k: 인코딩 어휘에 포함된 카테고리 수를 지정하는 INT64 값입니다. 이 함수는 데이터에서 top_k의 가장 빈번한 카테고리를 선택하고 사용합니다. 이 임곗값 아래의 카테고리는 0으로 인코딩됩니다. 높은 측정기준으로 인한 문제를 방지하려면 이 값이 1,000,000보다 작아야 합니다. 기본값은 32,000입니다.
  • frequency_threshold: 카테고리 빈도를 기준으로 인코딩 어휘에 포함되는 카테고리를 제한하는 INT64 값입니다. 이 함수는 빈도가 frequency_threshold보다 크거나 같은 카테고리를 사용합니다. 이 임곗값 미만의 카테고리는 0으로 인코딩됩니다. 기본값은 5입니다.

출력

ML.LABEL_ENCODER는 인코딩된 문자열 표현식을 나타내는 INT64 값을 반환합니다.

다음 예시는 문자열 표현식 집합에서 라벨 인코딩을 수행합니다. 인코딩 어휘를 데이터에서 가장 자주 발생하고 두 번 이상 발생하는 두 카테고리로 제한합니다.

SELECT f, ML.LABEL_ENCODER(f, 2, 2) OVER () AS output
FROM UNNEST([NULL, 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'd']) AS f
ORDER BY f;

결과는 다음과 유사합니다.

+------+--------+
|  f   | output |
+------+--------+
| NULL |      0 |
| a    |      0 |
| b    |      1 |
| b    |      1 |
| c    |      2 |
| c    |      2 |
| c    |      2 |
| d    |      0 |
| d    |      0 |
+------+--------+

다음 단계