Instrução CREATE MODEL

Instrução CREATE MODEL

Para criar um modelo no BigQuery, use a instrução BigQuery ML CREATE MODEL. Essa instrução é semelhante à instrução DDL CREATE TABLE. Quando você executa uma consulta SQL padrão que contém uma instrução CREATE MODEL, é gerado um job de consulta que processa a consulta.

Sintaxe de CREATE MODEL

{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL}
model_name
[OPTIONS(model_option_list)]
[AS query_statement]

model_option_list:
  MODEL_TYPE = { 'LINEAR_REG' | 'LOGISTIC_REG' | 'KMEANS' | 'TENSORFLOW' }
  [, INPUT_LABEL_COLS = string_array ]
  [, OPTIMIZE_STRATEGY = { 'AUTO_STRATEGY' | 'BATCH_GRADIENT_DESCENT' | 'NORMAL_EQUATION' } ]
  [, L1_REG = float64_value ]
  [, L2_REG = float64_value ]
  [, MAX_ITERATIONS = int64_value ]
  [, LEARN_RATE_STRATEGY = { 'LINE_SEARCH' | 'CONSTANT' } ]
  [, LEARN_RATE = float64_value ]
  [, EARLY_STOP = { TRUE | FALSE } ]
  [, MIN_REL_PROGRESS = float64_value ]
  [, DATA_SPLIT_METHOD = { 'AUTO_SPLIT' | 'RANDOM' | 'CUSTOM' | 'SEQ' | 'NO_SPLIT' } ]
  [, DATA_SPLIT_EVAL_FRACTION = float64_value ]
  [, DATA_SPLIT_COL = string_value ]
  [, LS_INIT_LEARN_RATE = float64_value ]
  [, WARM_START = { TRUE | FALSE } ]
  [, AUTO_CLASS_WEIGHTS = { TRUE | FALSE } ]
  [, CLASS_WEIGHTS = struct_array ]
  [, NUM_CLUSTERS = int64_value ]
  [, DISTANCE_TYPE = { 'EUCLIDEAN' | 'COSINE' } ]
  [, STANDARDIZE_FEATURES = { TRUE | FALSE } ]
  [, MODEL_PATH = string_value ]

CREATE MODEL

Cria e treina um modelo novo no conjunto de dados especificado. Se o nome do modelo existir, CREATE MODEL retornará um erro.

CREATE MODEL IF NOT EXISTS

Cria e treina um modelo novo somente se o modelo não existir no conjunto de dados especificado.

CREATE OR REPLACE MODEL

Cria e treina um modelo e substitui um modelo atual com o mesmo nome no conjunto de dados especificado.

model_name

model_name é o nome do modelo que você está criando ou substituindo. O nome do modelo precisa ser exclusivo por conjunto de dados: nenhum outro modelo ou tabela pode ter o mesmo nome. O nome do modelo precisa seguir as mesmas regras de nomenclatura de uma tabela do BigQuery. Um nome de modelo pode:

  • conter até 1.024 caracteres;
  • conter letras (maiúsculas e minúsculas), números e sublinhados.

model_name não diferencia maiúsculas e minúsculas.

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

model_option_list

Na model_option_list, a opção model_type é obrigatória. Todas as outras são opcionais.

CREATE MODEL é compatível com as seguintes opções:

MODEL_TYPE

Sintaxe

MODEL_TYPE = { 'LINEAR_REG' | 'LOGISTIC_REG' | 'KMEANS' }

Descrição

Especifique o tipo de modelo. Esta opção é obrigatória.

Argumentos

'LINEAR_REG': regressão linear para previsão. Por exemplo, as vendas de um item em um dia específico. Os rótulos têm valores reais, não podem ser +/-, infinito ou NaN.

'LOGISTIC_REG': regressão logística para classificação. Por exemplo, determinar se um cliente fará uma compra. Este modelo pode ser de dois tipos:

  • Regressão logística binária para classificação. Por exemplo, determinar se um cliente fará uma compra. Os rótulos têm apenas dois valores possíveis.
  • Regressão logística multiclasse para classificação. Esses modelos podem ser usados para prever diversos valores possíveis. Por exemplo, se uma entrada tem "valor baixo", "valor médio" ou "valor alto". Os rótulos podem ter até 50 valores exclusivos. No BigQuery ML, o treinamento de regressão logística multiclasse usa um classificador multinomial (em inglês) com uma função de perda de entropia cruzada (em inglês).

'KMEANS': clustering de k-means para segmentação de dados (Beta). Por exemplo, identificar segmentos de clientes. K-means é uma técnica de aprendizado não supervisionada, portanto, o treinamento do modelo não requer rótulos ou dados de divisão para treinamento ou avaliação.

'TENSORFLOW' (Beta): cria um modelo importando um modelo do TensorFlow para o BigQuery ML. Consulte a instrução CREATE MODEL para modelos do TensorFlow para mais informações.

INPUT_LABEL_COLS

Sintaxe

INPUT_LABEL_COLS = string_array

Descrição

Nome(s) de coluna de rótulo nos dados de treinamento.

Argumentos

string_array é uma ARRAY de STRINGs. Os tipos de modelo de regressão linear e regressão logística são compatíveis somente com valores de string_array que contêm um elemento.

OPTIMIZE_STRATEGY

Sintaxe

OPTIMIZE_STRATEGY = { 'AUTO_STRATEGY' | 'BATCH_GRADIENT_DESCENT' | 'NORMAL_EQUATION' }

Descrição

Estratégia para treinar modelos de regressão linear.

Argumentos

Aceita os seguintes valores:

'AUTO_STRATEGY': determina a estratégia de treinamento da seguinte forma:

  • Se l1_reg ou warm_start for especificado, a estratégia batch_gradient_descent será usada.
  • Se o total de cardinalidades dos recursos de treinamento for superior a 10.000, a estratégia batch_gradient_descent será usada.
  • Se houver um problema de sobreajuste, ou seja, o número de exemplos de treinamento for menor que 10x, em que x é a cardinalidade total, a estratégia batch_gradient_descent será usada.
  • A estratégia NORMAL_EQUATION será usada para todos os outros casos.

'BATCH_GRADIENT_DESCENT': treina o modelo usando o método do gradiente descendente em lote, que otimiza a função de perda usando a função gradiente.

'NORMAL_EQUATION': calcula diretamente a solução menos quadrada (em inglês) do problema de regressão linear com a fórmula analítica. A equação normal não pode ser usada quando:

  • l1_reg é especificado;
  • warm_start é especificado;
  • a cardinalidade total dos recursos de treinamento é maior que 10.000.

O valor padrão é 'AUTO_STRATEGY'.

L1_REG

Sintaxe

L1_REG = float64_value

Descrição

Quantidade de regularização L1 (em inglês) aplicada.

Argumentos

float64_value é um FLOAT64. O valor padrão é 0.

L2_REG

Sintaxe

L2_REG = float64_value

Descrição

Quantidade de regularização L2 (em inglês) aplicada.

Argumentos

float64_value é um FLOAT64. O valor padrão é 0.

MAX_ITERATIONS

Sintaxe

MAX_ITERATIONS = int64_value

Descrição

Número máximo de iterações de treinamento (ou etapas).

Argumentos

int64_value é um INT64. O valor padrão é 20.

LEARN_RATE_STRATEGY

Sintaxe

LEARN_RATE_STRATEGY = { 'LINE_SEARCH' | 'CONSTANT' }

Descrição

Estratégia para especificar a taxa de aprendizado (em inglês) durante o treinamento.

Argumentos

'LINE_SEARCH': usa o método pesquisa linear para calcular a taxa de aprendizado. A taxa de aprendizado inicial da pesquisa linear é o valor especificado para LS_INIT_LEARN_RATE.

A pesquisa linear desacelera o treinamento e aumenta o número de bytes processados, mas geralmente converge mesmo que a taxa de aprendizado inicial especificada seja maior.

'CONSTANT': define a taxa de aprendizado com o valor especificado para LEARN_RATE.

O valor padrão é 'LINE_SEARCH'.

LEARN_RATE

Sintaxe

LEARN_RATE = float64_value

Descrição

Taxa de aprendizado do gradiente descendente (em inglês) quando LEARN_RATE_STRATEGY é definido como CONSTANT. Se LEARN_RATE_STRATEGY for definido como 'LINE_SEARCH', será retornado um erro.

Argumentos

float64_value é um FLOAT64. O valor padrão é 0,1.

EARLY_STOP

Sintaxe

EARLY_STOP = { TRUE | FALSE }

Descrição

Indica se o treinamento precisa parar após a primeira iteração em que a melhoria da perda relativa é menor que o valor especificado para MIN_REL_PROGRESS.

Argumentos

O valor é um BOOL. O valor padrão é TRUE.

MIN_REL_PROGRESS

Sintaxe

MIN_REL_PROGRESS = float64_value

Descrição

Melhoria mínima de perda relativa, necessária para continuar o treinamento quando EARLY_STOP for definido como "true". Por exemplo, o valor 0,01, especifica que cada iteração precisa reduzir a perda em 1% para que o treinamento continue.

Argumentos

float64_value é um FLOAT64. O valor padrão é 0,01.

DATA_SPLIT_METHOD

Sintaxe

DATA_SPLIT_METHOD = { 'AUTO_SPLIT' | 'RANDOM' | 'CUSTOM' | 'SEQ' | 'NO_SPLIT' }

Descrição

Método para dividir dados de entrada em conjuntos de treinamento e avaliação. Dados de treinamento são usados para treinar o modelo. Os dados de avaliação são usados para evitar o overfitting (em inglês) por meio de parada antecipada.

Argumentos

Aceita os seguintes valores:

'AUTO_SPLIT': a estratégia de divisão automática é a seguinte:

  • Quando há menos de 500 linhas nos dados de entrada, todas as linhas são usadas como dados de treinamento.
  • Quando há entre 500 e 50.000 linhas nos dados de entrada, 20% dos dados são usados como dados de avaliação em uma divisão RANDOM.
  • Quando há mais de 50.000 linhas nos dados de entrada, somente 10.000 delas são usadas como dados de avaliação em uma divisão RANDOM.

'RANDOM': divide os dados aleatoriamente. Uma divisão aleatória é determinística: diferentes execuções de treinamento produzirão os mesmos resultados de divisão se os dados de treinamento subjacentes permanecerem os mesmos.

'CUSTOM': divide dados usando uma coluna fornecida pelo cliente do tipo BOOL. As linhas com o valor TRUE são usadas como dados de avaliação. As linhas com o valor FALSE são usadas como dados de treinamento.

'SEQ': divide os dados sequencialmente usando uma coluna fornecida pelo cliente. A coluna pode ter qualquer tipo de dados solicitados: NUMERIC, STRING ou TIMESTAMP. Todas as linhas com valores divididos menores que o limite serão usadas como dados de treinamento. As linhas restantes, incluindo NULLs, serão usadas como dados de avaliação.

'NO_SPLIT': use todos os dados como dados de treinamento.

O valor padrão é 'AUTO_SPLIT'.

DATA_SPLIT_EVAL_FRACTION

Sintaxe

DATA_SPLIT_EVAL_FRACTION = float64_value

Descrição

Esta opção é usada com divisões 'RANDOM' e 'SEQ'. Ela especifica a fração dos dados usados para avaliação, com precisão de duas casas decimais.

Argumentos

float64_value é um FLOAT64. O valor padrão é 0,2.

DATA_SPLIT_COL

Sintaxe

DATA_SPLIT_COL = string_value

Descrição

Identifica a coluna usada para dividir os dados. Ela não pode ser usada como um recurso ou rótulo e será excluída dos recursos automaticamente.

  • Quando o valor de DATA_SPLIT_METHOD é 'CUSTOM', a coluna correspondente deve ser do tipo BOOL. As linhas com valores TRUE ou NULL são usadas como dados de avaliação. Linhas com valores FALSE são usadas como dados de treinamento.

  • Quando o valor de DATA_SPLIT_METHOD é 'SEQ', as últimas n linhas, da menor para a maior na coluna correspondente, são usadas como dados de avaliação, em que n é o valor especificado para DATA_SPLIT_EVAL_FRACTION. As primeiras linhas são usadas como dados de treinamento.

Para informações sobre os tipos de entrada compatíveis, consulte Tipos de entrada compatíveis para DATA_SPLIT_COL.

Argumentos

string_value é uma STRING.

LS_INIT_LEARN_RATE

Sintaxe

LS_INIT_LEARN_RATE = float64_value

Descrição

Define a taxa de aprendizado inicial que LEARN_RATE_STRATEGY='LINE_SEARCH' usa. Esta opção só pode ser usada quando LINE_SEARCH é especificado.

Se o modelo LEARN_RATE aparentemente estiver duplicando todas as iterações (conforme indicado por ML.TRAINING_INFO), defina LS_INIT_LEARN_RATE com a última taxa de aprendizado duplicada. A taxa de aprendizado inicial ideal é diferente para cada modelo. Uma taxa de aprendizado inicial pode ser boa para um modelo e não para outro.

Argumentos

float64_value é um FLOAT64.

WARM_START

Sintaxe

WARM_START = { TRUE | FALSE }

Descrição

Treine novamente um modelo com novos dados de treinamento, novas opções de modelo ou ambos. A menos que explicitamente modificadas, as opções iniciais usadas para treinar o modelo são usadas na execução a quente.

Em uma execução a quente, os números da iteração são redefinidos para iniciar do zero. O número TRAINING_RUN ou as colunas TIMESTAMP podem ser usados para distinguir a execução a quente da execução original.

O valor das opções MODEL_TYPE e LABELS e o esquema de dados de treinamento precisam permanecer constantes em uma inicialização a quente.

Argumentos

Aceita um BOOL. O valor padrão é FALSE.

AUTO_CLASS_WEIGHTS

Sintaxe

AUTO_CLASS_WEIGHTS = { TRUE | FALSE }

Descrição

Define se os rótulos de classe serão balanceados usando pesos para cada classe em proporção inversa à frequência dessa classe.

Use com regressões logísticas e logísticas multiclasse.

Por padrão, os dados de treinamento usados para criar um modelo de regressão logística multiclasse não são ponderados. Se os rótulos nos dados de treinamento estiverem desbalanceados, o modelo poderá aprender a prever a classe de rótulos mais conhecida de forma mais intensa, o que pode não ser desejado.

Para balancear todas as classes, use a seguinte fórmula:

total_input_rows / (input_rows_for_class_n * number_of_unique_classes)

Argumentos

Aceita um BOOL. O valor padrão é FALSE.

CLASS_WEIGHTS

Sintaxe

CLASS_WEIGHTS = struct_array

Descrição

Os pesos a serem usados para cada rótulo de classe. Esta opção não pode ser especificada quando AUTO_CLASS_WEIGHTS é especificado.

Argumentos

struct_array é um ARRAY de STRUCTs. Cada STRUCT contém uma STRING contendo o rótulo de classe e um FLOAT64 contendo o peso desse rótulo de classe. É preciso que haja um peso para cada etiqueta de classe. Não é necessário que os pesos somem um. Exemplo:

CLASS_WEIGHTS = [STRUCT('example_label', .2)]

NUM_CLUSTERS

Sintaxe

NUM_CLUSTERS = int64_value

Descrição

Para um modelo k-means, o número de clusters a serem identificados nos dados de entrada.

Argumentos

int64_value é um INT64. Os valores permitidos são 2-100. O valor padrão é log10(n), em que n é o número de exemplos de treinamento.

DISTANCE_TYPE

Sintaxe

DISTANCE_TYPE = { 'EUCLIDEAN' | 'COSINE' }

Descrição

Para um modelo k-means, o tipo de métrica para calcular a distância entre dois pontos.

Argumentos

Aceita os seguintes valores:

'EUCLIDEAN': usa a seguinte equação para calcular a distância entre o ponto x e y:

$$ \lVert x-y\rVert_{2} $$

'COSINE': usa a seguinte equação para calcular a distância:

$$ \sqrt{1-\frac{x \cdot y}{\lVert x\rVert_{2}\lVert y\rVert_{2}}} $$

em que \( \lVert x\rVert_{2} \) representa a norma L2 de x.

O valor padrão é 'EUCLIDEAN'.

STANDARDIZE_FEATURES

Sintaxe

STANDARDIZE_FEATURES = { TRUE | FALSE }

Descrição

Para um modelo kmeans, indica se é para padronizar recursos numéricos (em inglês).

Argumentos

Aceita um BOOL. O valor padrão é TRUE.

MODEL_PATH

Sintaxe

MODEL_PATH = string_value

Descrição

Para tipos de modelo do TensorFlow, especifica o local do modelo do TensorFlow a ser importado.

string_value é o local de um intervalo do Google Cloud Storage que contém o modelo a ser importado.

Consulte a instrução CREATE MODEL para modelos do TensorFlow para mais informações.

Exemplo

MODEL_PATH = 'gs:////bucket/path/to/saved_model/*'

query_statement

Com a cláusula AS query_statement, você especifica a consulta SQL padrão usada para gerar os dados de treinamento. Para saber qual a sintaxe SQL compatível com a cláusula query_statement, consulte a página Sintaxe de consulta SQL padrão.

Todas as colunas referenciadas por query_statement são usadas como entradas para o modelo, exceto as colunas incluídas em input_label_cols e data_split_col.

Entradas compatíveis

A instrução CREATE MODEL aceita os seguintes tipos de dados para rótulo de entrada e colunas de divisão de dados.

Tipos de dados aceitos para colunas de rótulo de entrada

O BigQuery ML é compatível com diferentes tipos de dados SQL padrão, dependendo do tipo de modelo. Alguns tipos de dados aceitos para input_label_cols:

Model type Supported label types
linear_reg INT64
NUMERIC
FLOAT64
logistic_reg Qualquer tipo de dados agrupável
kmeans Qualquer tipo de dados agrupável

Tipos de dados aceitos para colunas de divisão de dados

O BigQuery ML é compatível com diferentes tipos de dados SQL padrão, dependendo do método de divisão de dados. Alguns tipos de dados aceitos para data_split_col:

Data split method Supported column types
custom BOOL
seq INT64
NUMERIC
FLOAT64
TIMESTAMP

Limitações

É preciso que as instruções CREATE MODEL obedeçam às seguintes regras:

  • Apenas uma instrução CREATE é permitida.
  • Quando você usa uma instrução CREATE MODEL, o tamanho do modelo precisa ser 90 MB ou menos, senão a consulta falha. Geralmente, se todas as variáveis categóricas forem strings curtas, uma cardinalidade de recurso total (dimensão do modelo) de 5-10 milhões será aceita. A dimensionalidade é dependente da cardinalidade e do comprimento das variáveis de string.
  • A coluna de rótulo não pode conter valores NULL. Se a coluna de rótulos contiver valores NULL, a consulta falhará.
  • CREATE MODEL não aceita atualmente o uso de chaves de criptografia KMS. Se o projeto usar uma chave KMS padrão, CREATE MODEL retornará um erro.
  • Atualmente, a cláusula CREATE MODEL IF NOT EXISTS sempre atualiza o último carimbo de data/hora modificado de um modelo.
  • Para modelos de regressão linear, a coluna label precisa ter valores reais (os valores de coluna não podem ser +/-, infinito ou NaN).
  • Para modelos de regressão logística, as colunas de rótulo podem conter até 50 valores exclusivos, ou seja, o número de classes é menor ou igual a 50.

Transformações de variáveis de entrada

O BigQuery ML transforma variáveis de entrada ou recursos da seguinte maneira:

Tipo de dados de entrada Método de transformação Detalhes
INT64
NUMERIC
FLOAT64
Padronização (em inglês) Para todas as colunas numéricas, o BigQuery ML padroniza e centraliza a coluna em zero antes de passá-la para treinamento. Ao criar um modelo k-means, a opção STANDARDIZE_FEATURES especifica se os recursos numéricos devem ser padronizados.
BOOL
STRING
BYTES
DATE
DATETIME
TIME
Codificação one-hot (em inglês) Para todas as colunas não numéricas diferentes de TIMESTAMP, o BigQuery ML realiza uma transformação do tipo codificação one-hot. Essa transformação gera um recurso separado para cada valor exclusivo na coluna.
ARRAY
STRUCT
Não compatível
TIMESTAMP Transformação de carimbo de data/hora Ao encontrar uma coluna TIMESTAMP, o BigQuery ML extrai um conjunto de componentes do TIMESTAMP e executa uma combinação de padronização e codificação one-hot nos componentes extraídos. Para o componente de tempo em segundos do Unix, o BigQuery ML usa padronização. Para todos os outros componentes, ele usa codificação one-hot.

Use a função ML.WEIGHTS para ver a transformação de uma coluna TIMESTAMP em várias colunas de recurso.

Imputação

Em estatística, a imputação é usada para substituir dados ausentes por valores substitutos. Quando você treina um modelo no BigQuery ML, os valores NULL são tratados como dados ausentes. Quando você prevê resultados no BigQuery ML, podem ocorrer valores ausentes quando o BigQuery ML encontra um valor NULL ou um valor não visto anteriormente. O BigQuery ML manipula dados ausentes com base no tipo da coluna: numérica, codificação one-hot ou carimbo de data/hora.

Colunas numéricas

No treinamento e na predição, os valores NULL em colunas numéricas são substituídos pelo valor médio, conforme calculado pela coluna de recurso nos dados de entrada originais.

Colunas de codificação one-hot

No treinamento e na predição, os valores NULL nas colunas de codificação one-hot são mapeados para uma categoria extra que é adicionada aos dados. Os dados não vistos anteriormente recebem peso 0 durante a predição.

Colunas de carimbo de data/hora

Colunas TIMESTAMP usam uma combinação de métodos de imputação de colunas padronizadas e de codificação one-hot. Para a coluna de tempo do unix gerada, o BigQuery ML substitui os valores pelo tempo médio do unix das colunas originais. Para os outros valores gerados, o BigQuery ML os atribui à respectiva categoria NULL de cada recurso extraído.

Exemplos de CREATE MODEL

Com a instrução CREATE MODEL é possível criar um modelo com as opções especificadas. Se o nome da tabela constar no conjunto de dados, será retornado o seguinte erro:

Already Exists: [PROJECT_ID]:[DATASET].[MODEL]

Para substituir um modelo existente, use a instrução CREATE OR REPLACE MODEL.

Os exemplos a seguir criam modelos chamados mymodel no mydataset no projeto padrão.

Como treinar um modelo de regressão linear

O exemplo a seguir cria e treina um modelo de regressão linear. A taxa de aprendizado é definida como 0,15, a regularização de L1 é definida como 1, e o número máximo de iterações de treinamento é definido como 5.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='linear_reg',
    ls_init_learn_rate=.15,
    l1_reg=1,
    max_iterations=5 ) AS
SELECT
  column1,
  column2,
  column3,
  label
FROM
  `mydataset.mytable`
WHERE
  column4 < 10

Como treinar um modelo de regressão linear com uma divisão de dados sequencial

Neste exemplo, você cria um modelo de regressão linear com uma divisão de dados sequencial. A fração de divisão é .3, e a divisão usa a coluna timestamp como base para a divisão.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='linear_reg',
    ls_init_learn_rate=.15,
    l1_reg=1,
    max_iterations=5,
    data_split_method='seq',
    data_split_eval_fraction=0.3,
    data_split_col='timestamp' ) AS
SELECT
  column1,
  column2,
  column3,
  timestamp,
  label
FROM
  `mydataset.mytable`
WHERE
  column4 < 10

Como treinar um modelo de regressão linear com uma divisão de dados personalizada

Neste exemplo, você dividiu seus dados manualmente em uma tabela de treinamento e em uma tabela de avaliação. A tabela de treinamento é denominada training_table. A tabela de avaliação é denominada evaluation_table.

Com este comando, você cria um modelo de regressão linear usando um método de divisão personalizada e treina o modelo unindo os dados das tabelas de avaliação e treinamento.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='linear_reg',
    data_split_method='custom',
    data_split_col='split_col' ) AS
SELECT
  *,
  false AS split_col
FROM
  `mydataset.training_table`
UNION ALL
SELECT
  *,
  true AS split_col
FROM
  `mydataset.evaluation_table`

Neste exemplo, todas as colunas na tabela de treinamento e na tabela de avaliação são recursos ou rótulo. A consulta usa SELECT * e UNION ALL para anexar todos os dados da coluna split_col aos dados atuais.

Como treinar um modelo de regressão logística multiclasse com pesos calculados automaticamente

Neste exemplo, você cria um modelo de regressão logística multiclasse usando a opção auto_class_weights.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='logistic_reg',
    auto_class_weights=true ) AS
SELECT
  *
FROM
  `mydataset.mytable`

Como treinar um modelo de regressão logística multiclasse com pesos especificados

Neste exemplo, você cria um modelo de regressão logística multiclasse usando a opção class_weights. As colunas de rótulo são label1, label2 e label3.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='logistic_reg',
    class_weights=[('label1', 0.5), ('label2', 0.3), ('label3', 0.2)]) AS
SELECT
  *
FROM
  `mydataset.mytable`

Como treinar um modelo de regressão logística com pesos especificados

Neste exemplo, você cria um modelo de regressão logística usando a opção class_weights.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='logistic_reg',
    class_weights=[('0', 0.9), ('1', 0.1)]) AS
SELECT
  *
FROM
  `mydataset.mytable`

Como treinar um modelo k-means

Neste exemplo, criamos um modelo k-means com quatro clusters usando o valor padrão de distance_type: euclidean_distance.

CREATE MODEL
  `mydataset.mymodel`
OPTIONS
  ( model_type='kmeans',
    num_clusters=4 ) AS
SELECT
  *
FROM `mydataset.mytable`
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…