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 STRING
s. 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
ouwarm_start
for especificado, a estratégiabatch_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 tipoBOOL
. As linhas com valoresTRUE
ouNULL
são usadas como dados de avaliação. Linhas com valoresFALSE
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 paraDATA_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 STRUCT
s. 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
:
'COSINE'
: usa a seguinte equação para calcular a distância:
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 valoresNULL
, 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`