ML.WEIGHTS 함수

ML.WEIGHTS 함수

ML.WEIGHTS 함수를 사용하면 예측 중에 모델에서 사용되는 기본 가중치를 확인할 수 있습니다.

ML.WEIGHTS는 다음 열을 반환합니다.

  • processed_input - 모델 특성 입력의 이름입니다. 이 열의 값은 학습 중에 사용되는 SELECT 문의 열 이름과 일치합니다.
  • weight - 각 특성의 가중치입니다. 숫자 열의 경우 가중치에 값이 포함되고 category_weights 열은 NULL입니다. 원-핫 인코딩으로 변환된 숫자가 아닌 열에서 가중치 열은 NULL이고 category_weights 열은 각 카테고리의 카테고리 이름과 가중치의 ARRAY입니다.
  • category_weights.category - 입력 열이 숫자가 아닌 경우 카테고리 이름입니다.
  • category_weights.weight — 입력 열이 숫자가 아닌 경우 카테고리 가중치입니다.
  • class_label — 멀티클래스 모델에서 은 지정된 가중치의 라벨입니다. 출력에는 <class_label, processed_input> 조합당 행 한 개가 포함됩니다.

model을 만든 CREATE MODEL 문에 TRANSFORM 절이 있으면 ML.WEIGHTSTRANSFORM 출력 특성의 가중치를 출력합니다. 가중치는 TRANSFORM 없이 생성된 모델과 마찬가지로 기본적으로 비정규화되며, 정규화된 가중치를 구할 수 있는 옵션이 함께 제공됩니다.

TIMESTAMPprocessed_input 결과

BigQuery ML은 TIMESTAMP 열을 발견하면 에서 구성요소 집합을 추출하고 추출된 구성요소에 표준화 및 원-핫 인코딩을 혼합하여 수행합니다. ML.WEIGHTS 함수를 사용할 때 processed_input 열에서 변환 결과를 확인할 수 있습니다.

다음 표에서는 TIMESTAMP에서 추출된 구성요소와 해당되는 변환 방법을 보여줍니다. processed_input 값에서 [COLUMN_NAME]TIMESTAMP 열의 이름입니다.

TIMESTAMP 구성요소 processed_input 결과 변환 방법
Unix 시간(초 단위) [COLUMN_NAME] 표준화
날짜 _TS_DOM_[COLUMN_NAME] 원-핫 인코딩
요일 _TS_DOW_[COLUMN_NAME] 원-핫 인코딩
_TS_MOY_[COLUMN_NAME] 원-핫 인코딩
시간 _TS_HOD_[COLUMN_NAME] 원-핫 인코딩
_TS_MOH_[COLUMN_NAME] 원-핫 인코딩
1년 기준 주 수(주는 일요일에 시작) _TS_WOY_[COLUMN_NAME] 원-핫 인코딩
연도 _TS_YEAR_[COLUMN_NAME] 원-핫 인코딩

ML.WEIGHTS 구문

ML.WEIGHTS(MODEL `project_id.dataset.model`)
          [, STRUCT(<T> as standardize)])

각 항목의 의미는 다음과 같습니다.

  • project_id는 프로젝트 ID입니다.
  • dataset는 모델을 포함하는 BigQuery 데이터세트입니다.
  • model은 모델 이름입니다.
  • standardize는 선택적 매개변수로, 모델 가중치를 표준화하여 모든 특성의 평균이 0이고 표준편차가 1이라고 가정해야 하는지 여부를 결정합니다. 가중치를 표준화하면 가중치의 절대적 강도를 서로 비교할 수 있습니다. 기본값은 false입니다. 제공되는 값은 STRUCT의 유일한 필드여야 합니다.

ML.WEIGHTS 예시

표준화하지 않는 ML.WEIGHTS

다음 예시에서는 mydatasetmymodel에서 가중치 정보를 검색합니다. 데이터세트는 기본 프로젝트에 있습니다.

다음 쿼리는 입력 열 input_col의 각 원-핫 인코딩 카테고리와 연결된 가중치를 반환합니다.

SELECT
  category,
  weight
FROM
  UNNEST((
    SELECT
      category_weights
    FROM
      ML.WEIGHTS(MODEL `mydataset.mymodel`)
    WHERE
      processed_input = 'input_col'))

category_weights 열이 중첩된 반복 열이므로 이 명령어는 UNNEST 함수를 사용합니다.

표준화하는 ML.WEIGHTS

다음 예시에서는 mydatasetmymodel에서 가중치 정보를 검색합니다. 데이터세트는 기본 프로젝트에 있습니다.

쿼리는 모든 특성의 평균이 0이고 표준편차가 1이라고 가정하는 표준화된 가중치를 검색합니다.

SELECT
  *
FROM
  ML.WEIGHTS(MODEL `mydataset.mymodel`,
    STRUCT(true AS standardize))

ML.WEIGHTS 제한사항

ML.WEIGHTS 함수에는 다음 제한사항이 적용됩니다.