Função ML.EVALUATE

Função ML.EVALUATE

Use a função ML.EVALUATE para avaliar as métricas do modelo. A função ML.EVALUATE pode ser usada com modelos de regressão linear e regressão logística. A função ML.ROC_CURVE também pode ser usada para avaliar modelos de regressão logística.

A saída da função ML.EVALUATE é uma única linha contendo métricas comuns aplicáveis ao tipo de modelo fornecido.

As colunas de saída para uma regressão logística são:

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

As colunas de saída para uma regressão linear são:

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

Limitações de ML.EVALUATE

A função ML.EVALUATE do BigQuery ML está sujeita às seguintes limitações:

  • Se um modelo de regressão linear tiver rótulos que não sejam do tipo FLOAT64, a função ML.EVALUATE retornará o seguinte erro: Invalid argument type passed to a function.

    Para contornar essa limitação, use a função CAST para converter o rótulo em FLOAT64.

Sintaxe de ML.EVALUATE

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

model_name

model_name é o nome do modelo que você está avaliando. Se você não tiver um projeto padrão já configurado, adicione o código do projeto ao nome do modelo, no seguinte formato: `[PROJECT_ID].[DATASET].[MODEL]`, incluindo os acentos graves. Por exemplo, `myproject.mydataset.mymodel`.

É preciso que os nomes de coluna de entrada e os tipos de dados no modelo correspondam aos nomes de colunas e tipos de dados na tabela.

table_name

table_name é o nome da tabela de entrada em que estão os dados de avaliação. Se você não tiver um projeto padrão configurado, adicione o código do projeto ao nome da tabela, no seguinte formato: `[PROJECT_ID]. [DATASET].[TABLE]`, incluindo os acentos graves. Por exemplo, `myproject.mydataset.mytable`.

É preciso que os nomes de coluna de entrada e os tipos de dados no modelo correspondam aos nomes de colunas e tipos de dados na tabela. Na entrada, é preciso que haja uma coluna correspondente ao nome da coluna de rótulo, fornecido durante o treinamento. Esse valor é fornecido com o uso da opção input_label_cols. Se input_label_cols não for especificado, será usada a coluna chamada "rótulo" nos dados de treinamento.

query_statement

Com a cláusula query_statement, você especifica a consulta SQL padrão, usada para gerar os dados de avaliação. Para informações sobre a compatibilidade da sintaxe SQL da cláusula query_statement, consulte a página query_statement.

Todas as colunas referenciadas pela query_statement são usadas como entradas para o modelo.

threshold

O threshold (opcional) é um limite personalizado para o modelo de regressão logística a ser usado para avaliação. O valor padrão é 0,5. É preciso que o valor limite fornecido seja do tipo STRUCT.

Um valor zero para precisão ou recuperação mostra que o limite selecionado não produziu rótulos positivos verdadeiros. Um valor NaN para precisão mostra que o limite selecionado não produziu rótulos positivos, nem positivos verdadeiros nem falsos positivos.

Exemplo de ML.EVALUATE

O exemplo a seguir supõe que o modelo e a tabela de entrada estejam no projeto padrão.

A consulta a seguir é usada para criar um modelo de regressão logística.

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

A consulta a seguir avalia o modelo usando um limite personalizado de 0,55.

SELECT
  *
FROM
  ML.EVALUATE(MODEL `mydataset.mymodel`,
    (
    SELECT
      custom_label,
      column1,
      column2
    FROM
      `mydataset.mytable`),
    STRUCT(0.55 AS threshold))
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.