ML.EVALUATE 함수

ML.EVALUATE 함수

ML.EVALUATE 함수를 사용하여 모델 통계를 평가합니다. ML.EVALUATE 함수는 선형 회귀 및 로지스틱 회귀 모형 모두에 사용할 수 있습니다. ML.ROC_CURVE 함수를 사용하여 로지스틱 회귀 모형을 평가할 수도 있습니다.

ML.EVALUATE 함수의 출력은 제공된 모델 유형에 해당하는 일반적인 통계가 포함된 단일 행입니다.

로지스틱 회귀 모형의 출력 열은 다음과 같습니다.

  • precision
  • recall
  • accuracy
  • f1_score
  • log_loss
  • roc_auc

선형 회귀 모형의 출력 열은 다음과 같습니다.

  • mean_absolute_error
  • mean_squared_error
  • mean_squared_log_error
  • median_absolute_error
  • r2_score
  • explained_variance

ML.EVALUATE 제한사항

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

  • 선형 회귀 모형에 FLOAT64 유형이 아닌 라벨이 포함된 경우 ML.EVALUATE 함수는 Invalid argument type passed to a function 오류를 반환합니다.

    이 제한사항을 해결하려면 CAST 함수를 사용하여 라벨을 FLOAT64로 변환합니다.

ML.EVALUATE 구문

ML.EVALUATE(MODEL model_name,
           {TABLE table_name | (query_statement)}
           [, STRUCT( AS threshold)])

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에서 참조하는 모든 열은 모델의 입력으로 사용됩니다.

threshold

(선택사항) threshold는 평가에 사용할 로지스틱 회귀 모형의 커스텀 임계값입니다. 기본값은 0.5입니다. 제공되는 임계값은 STRUCT 유형이어야 합니다.

정밀도 또는 재현율의 값이 0이면 선택한 임계값이 참양성 라벨을 생성하지 않았음을 나타냅니다. 정밀도 값이 NaN이면 선택한 임계값이 양성 라벨을 생성하지 않았고 참양성도 거짓양성도 아님을 의미합니다.

ML.EVALUATE

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

다음 쿼리는 로지스틱 회귀 모형을 만드는 데 사용됩니다.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  (model_type='logistic_reg',
    input_label_cols=['custom_label']) AS
SELECT
  custom_label,
  column1
FROM
  `mydataset.mytable`

다음 쿼리는 커스텀 임계값인 0.55를 사용하여 모델을 평가합니다.

SELECT
  *
FROM
  ML.EVALUATE(MODEL `mydataset.mymodel`,
    (
    SELECT
      custom_label,
      column1,
      column2
    FROM
      `mydataset.mytable`),
    STRUCT(0.55 AS threshold))
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

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