Função ML.ROC_CURVE

Função ML.ROC_CURVE

Use a função ML.ROC_CURVE para avaliar métricas específicas de regressão logística. Com a função ML.ROC_CURVE, são avaliados somente modelos de regressão logística.

A função de saída ML.ROC_CURVE inclui várias linhas com métricas para diferentes valores de limite para o modelo. As métricas incluem:

  • threshold
  • recall
  • false_positive_rate
  • true_positives
  • false_positives
  • true_negatives
  • false_negatives

Sintaxe ML.ROC_CURVE

ML.ROC_CURVE(MODEL model_name,
            {TABLE table_name | (query_statement)},
            [GENERATE_ARRAY(thresholds)])

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.

thresholds

Os thresholds (opcionais) são os valores percentuais da saída de previsão fornecida por meio da função GENERATE_ARRAY. Os valores fornecidos devem ser do tipo DOUBLE.

Se você não especificar os limites a serem usados, eles serão escolhidos automaticamente com base nos valores de saída da previsão, usando 100 quantis aproximados: APPROX_QUANTILES(predicted_label, 100).

Exemplos de ML.ROC_CURVE

Nos exemplos a seguir, pressupomos que o modelo e a tabela de entrada estão no projeto padrão.

Como avaliar a curva ROC de um modelo de regressão logística

A consulta a seguir retorna essas colunas: threshold, recall, false_positive_rate, true_positives, false_positives, true_negatives e false_negatives. A taxa de recall e falsos positivos pode ser representada graficamente para uma curva ROC. Os valores de limite retornados são escolhidos com base nos valores percentuais de saída da previsão.

SELECT
  *
FROM
  ML.ROC_CURVE(MODEL `mydataset.mymodel`,
    TABLE `mydataset.mytable`)

Como avaliar uma curva ROC com limites personalizados

A consulta a seguir retorna as mesmas colunas do exemplo anterior. Os valores de limite retornados são escolhidos com base na saída da função GENERATE_ARRAY.

SELECT
  *
FROM
  ML.ROC_CURVE(MODEL `mydataset.mymodel`,
    TABLE `mydataset.mytable`,
    GENERATE_ARRAY(0.4,0.6,0.01))

Como avaliar a curva de recuperação de precisão

A consulta a seguir, em vez de receber uma curva ROC (a taxa de recall versus taxa de falso positivo), é calculada com base na precisão das contagens positivas e falsas positivas.

SELECT
  recall,
  true_positives / (true_positives + false_positives) AS precision
FROM
  ML.ROC_CURVE(MODEL `mydataset.mymodel`,
    TABLE `mydataset.mytable`)
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

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