A Regressão de Vetores de Suporte (SVR) é um algoritmo de regressão baseado em máquinas de vetores de suporte (SVM). O SVR identifica um plano de regressão no qual todos os elementos de dados de um conjunto apresentam a menor distância possível. Esse algoritmo é ideal para conjuntos de dados com features esparsas ou com poucas features de entrada.
Casos de uso
O SVR apresenta bom desempenho em tarefas de previsão numérica nas seguintes situações:
O conjunto de dados possui features esparsas ou um número reduzido de features de entrada
A relação entre as entradas e a saída pode ser não linear (utilize o kernel
rbfoupoly)Os dados contêm ruído e o modelo precisa tolerar pequenos erros de previsão
Exemplo: Prever a temperatura de uma cidade com base em features de entrada como a média histórica de temperatura em um período, percentual de cobertura vegetal, quantidade de lagos próximos e a data.
Parâmetros
Todos os parâmetros são passados como valores de model_parameter na instrução CREATE MODEL.
|
Parâmetro |
Descrição |
Padrão |
|
|
Função de kernel usada para mapear os dados de entrada em um espaço de maior dimensão. Consulte Escolher um kernel para obter orientações. Valores válidos: |
|
|
|
Coeficiente de penalidade do coeficiente de relaxamento. Deve ser um número de ponto flutuante maior que 0; pode ser deixado vazio. Para dados ruidosos ou de baixa qualidade, reduza este valor. |
|
|
|
Defina o tubo epsilon: previsões dentro do intervalo de |
|
|
|
Número máximo de iterações de treinamento. Valores válidos: inteiro positivo e -1. Defina como |
|
Escolha um kernel
|
Kernel |
Mais indicado para |
Compromisso |
|
|
Dados não lineares (maioria dos casos de uso) |
Padrão; lida com uma ampla variedade de distribuições de dados |
|
|
Dados linearmente separáveis |
Menos parâmetros e treinamento mais rápido; o espaço de features corresponde ao espaço de entrada |
|
|
Relações polinomiais entre features |
Exige mais parâmetros |
|
|
— |
Efeito semelhante ao de uma rede neural multicamadas |
Exemplos
Os três exemplos abaixo utilizam o prefixo de comentário /*polar4ai*/ para direcionar as consultas ao mecanismo polar4ai.
Crie um modelo SVR
/*polar4ai*/CREATE MODEL svr1 WITH
( model_class = 'svr', x_cols = 'dx1,dx2', y_cols='y',
model_parameter=(kernel='rbf')) AS (SELECT * FROM db4ai.testdata1);
Avaliar o modelo
/*polar4ai*/SELECT dx1,dx2 FROM EVALUATE(MODEL svr1,
SELECT * FROM db4ai.testdata1 LIMIT 10) WITH
(x_cols = 'dx1,dx2',y_cols='y',metrics='r2_score');
Execute previsões
/*polar4ai*/SELECT dx1,dx2 FROM
PREDICT(MODEL svr1, SELECT * FROM db4ai.testdata1 LIMIT 10)
WITH (x_cols = 'dx1,dx2');
Os campos x_cols e y_cols devem usar tipos de dados de ponto flutuante ou inteiro.