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 | +------+--------+
다음 단계
- 특성 전처리에 대한 자세한 내용은 특성 전처리 개요를 참조하세요.
- 각 모델 유형에 지원되는 SQL 문과 함수에 대한 자세한 내용은 각 모델의 엔드 투 엔드 사용자 경험을 참조하세요.