ML.PREDICT 함수

ML.PREDICT 함수

ML.PREDICT 함수는 모델을 사용하여 결과를 예측하는 데 사용할 수 있습니다. 모델을 만드는 중, 모델을 만든 후 또는 실패 후(최소 1회 반복이 완료된 경우) 예측을 수행할 수 있습니다. ML.PREDICT는 항상 마지막으로 성공한 반복의 모델 가중치를 사용합니다.

ML.PREDICT 함수의 출력에는 입력 테이블과 같은 행 수가 있으며 입력 테이블의 모든 열과 모델의 모든 출력 열이 포함됩니다. 모델의 출력 열 이름은 predicted_<label_column_name>이고 로지스틱 회귀 모형의 경우 predicted_<label_column_name>_probs입니다. 두 열 모두에서 label_column_name은 학습 중 사용된 입력 라벨 열의 이름입니다.

로지스틱 회귀 모형의 경우 predicted_label_probs는 각 라벨의 예측 가능성이 포함된 [<label, prob>] 유형의 STRUCT 배열입니다. predicted_label은 두 입력 라벨 중 하나이며 예측 가능성이 더 높은 라벨이 됩니다.

선형 회귀 모형의 경우 predicted_label은 라벨의 예측 값입니다.

ML.PREDICT 구문

ML.PREDICT(MODEL model_name,
          {TABLE table_name | (query_statement)})

model_name

model_name은 평가할 모델의 이름입니다. 기본 프로젝트를 구성하지 않은 경우 프로젝트 ID를 모델 이름 앞에 `[PROJECT_ID].[DATASET].[MODEL]`(백틱 포함) 형식으로 추가합니다. 예를 들어 `myproject.mydataset.mymodel`과 같은 형식입니다.

table_name

table_name은 평가 데이터가 포함된 입력 테이블의 이름입니다. 기본 프로젝트를 구성하지 않은 경우 프로젝트 ID를 테이블 이름 앞에 `[PROJECT_ID].[DATASET].[TABLE]`(백틱 포함) 형식으로 추가합니다. 예를 들어 `myproject.mydataset.mytable`과 같은 형식입니다.

모델의 입력 열 이름과 데이터 유형은 테이블의 열 이름 및 데이터 유형과 일치해야 합니다. 입력에는 학습 중 제공된 라벨 열 이름과 일치하는 열이 있어야 합니다. 이 값은 input_label_cols 옵션을 사용하여 제공됩니다. input_label_cols가 지정되지 않은 경우 학습 데이터의 'label'이라는 열이 사용됩니다.

query_statement

query_statement 절은 평가 데이터를 생성하는 데 사용되는 표준 SQL 쿼리를 지정합니다. query_statement 절의 지원되는 SQL 구문은 표준 SQL 쿼리 구문을 참조하세요.

query_statement에서 참조하는 모든 열은 모델의 입력으로 사용됩니다.

ML.PREDICT

다음 예에서는 모델과 입력 테이블이 기본 프로젝트에 있다고 가정합니다.

결과 예측

다음 쿼리는 ML.PREDICT 함수를 사용하여 결과를 예측합니다. 쿼리는 다음 열을 반환합니다.

  • predicted_label
  • label
  • column1
  • column2
SELECT
  *
FROM
  ML.PREDICT(MODEL `mydataset.mymodel`,
    (
    SELECT
      label,
      column1,
      column2
    FROM
      `mydataset.mytable`))

다른 두 모델의 예측 비교

이 예에서 다음 쿼리는 첫 번째 모델을 만드는 데 사용됩니다.

CREATE MODEL
  `mydataset.mymodel1`
OPTIONS
  (model_type='linear_reg',
    input_label_cols=['label'],
  ) AS
SELECT
  label,
  input_column1
FROM
  `mydataset.mytable`

다음 쿼리는 두 번째 모델을 만드는 데 사용됩니다.

CREATE MODEL
  `mydataset.mymodel2`
OPTIONS
  (model_type='linear_reg',
    input_label_cols=['label'],
  ) AS
SELECT
  label,
  input_column2
FROM
  `mydataset.mytable`

다음 쿼리는 ML.PREDICT 함수를 사용하여 두 모델의 출력을 비교합니다.

SELECT
  label,
  predicted_label1,
  predicted_label AS predicted_label2
FROM
  ML.PREDICT(MODEL `mydataset.mymodel2`,
    (
    SELECT
      * REPLACE (predicted_label AS predicted_label1)
    FROM
      ML.PREDICT(MODEL `mydataset.mymodel1`,
        TABLE `mydataset.mytable`)))
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.