ML.ONE_HOT_ENCODER 함수
이 문서에서는 원-핫 또는 더미 인코딩 스키마를 사용하여 문자열 표현식을 인코딩할 수 있는 ML.ONE_HOT_ENCODER
함수를 설명합니다.
인코딩 어휘는 알파벳순으로 정렬됩니다. 어휘에 없는 NULL
값과 카테고리는 0
의 index
값으로 인코딩됩니다. dummy 인코딩을 사용하는 경우 삭제된 카테고리가 value
0
으로 인코딩됩니다.
TRANSFORM
절에 사용될 때 학습 중에 계산된 어휘 및 삭제된 카테고리 값은 지정한 상위 k 및 빈도 임곗값과 함께 예측에 자동으로 사용됩니다.
구문
ML.ONE_HOT_ENCODER(string_expression [, drop] [, top_k] [, frequency_threshold]) OVER()
인수
ML.ONE_HOT_ENCODER
는 다음 인수를 사용합니다.
string_expression
: 인코딩할STRING
표현식입니다.drop
: 함수가 카테고리를 삭제하는지 여부를 지정하는STRING
값입니다. 유효한 값은 다음과 같습니다.none
: 모든 카테고리를 보존합니다. 이 값이 기본값입니다.most_frequent
: 문자열 표현식에서 가장 자주 발견된 범주를 삭제합니다. 이 값을 선택하면 함수에 dummy 인코딩이 사용됩니다.
top_k
: 인코딩 어휘에 포함된 카테고리 수를 지정하는INT64
값입니다. 이 함수는 데이터에서top_k
의 가장 빈번한 카테고리를 선택하고 사용합니다. 이 임곗값 아래의 카테고리는0
으로 인코딩됩니다. 높은 측정기준으로 인한 문제를 방지하려면 이 값이1,000,000
보다 작아야 합니다. 기본값은32,000
입니다.frequency_threshold
: 카테고리 빈도를 기준으로 인코딩 어휘에 포함되는 카테고리를 제한하는INT64
값입니다. 이 함수는 빈도가frequency_threshold
보다 크거나 같은 카테고리를 사용합니다. 이 임곗값 미만의 카테고리는0
으로 인코딩됩니다. 기본값은5
입니다.
출력
ML.ONE_HOT_ENCODER
는 ARRAY<STRUCT<INT64, FLOAT64>>
형식의 구조체 값 배열을 반환합니다. 구조체의 첫 번째 요소는 인코딩된 문자열 표현식의 색인을 제공하고, 두 번째 요소는 인코딩된 문자열 표현식의 값을 제공합니다.
예
다음 예시는 문자열 표현식 집합에서 dummy 인코딩을 수행합니다. 인코딩 어휘를 데이터에서 가장 자주 발생하고 0번 이상 발생하는 10개의 카테고리로 제한합니다.
SELECT f, ML.ONE_HOT_ENCODER(f, 'most_frequent', 10, 0) OVER () AS output FROM UNNEST([NULL, 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'd']) AS f ORDER BY f;
결과는 다음과 유사합니다.
+------+-----------------------------+ | f | output.index | output.value | +------+--------------+--------------+ | NULL | 0 | 1.0 | | a | 1 | 1.0 | | b | 2 | 1.0 | | b | 2 | 1.0 | | c | 3 | 0.0 | | c | 3 | 0.0 | | c | 3 | 0.0 | | d | 4 | 1.0 | | d | 4 | 1.0 | +------+-----------------------------+
다음 단계
- 특성 전처리에 대한 자세한 내용은 특성 전처리 개요를 참조하세요.
- 각 모델 유형에 지원되는 SQL 문과 함수에 대한 자세한 내용은 각 모델의 엔드 투 엔드 사용자 경험을 참조하세요.