A máquina de vetores de suporte (SVM) é um método de aprendizado de máquina baseado na teoria do aprendizado estatístico. Esse método aprimora a capacidade de generalização do modelo por meio da minimização do risco estrutural, que equilibra o risco empírico e o intervalo de confiança. Este tópico explica como configurar o componente Linear SVM e apresenta um exemplo de uso.
Contexto
O algoritmo Linear SVM é implementado sem função kernel. Para obter detalhes sobre a implementação, consulte a seção "trust region method for L2-SVM" em princípios do algoritmo.
Limitações
O componente Linear SVM oferece suporte apenas à classificação binária.
Configuração do componente
Configure os parâmetros do componente Linear SVM por um dos métodos a seguir.
Método 1: Configuração visual
-
Porta de entrada
O componente Linear SVM possui uma porta de entrada obrigatória. Conecte-a a um componente Read Table.
-
Configure os parâmetros do componente na página do fluxo de trabalho.
Tipo de parâmetro
Parâmetro
Obrigatório
Descrição
Configurações de campo
Colunas de recursos
Sim
Colunas de recursos para treinamento do modelo. Tipos de dados compatíveis: BIGINT e DOUBLE.
Coluna de rótulo
Sim
Coluna de rótulo para treinamento do modelo. Tipos de dados compatíveis: BIGINT, DOUBLE e STRING.
Configurações de parâmetro
Valor do rótulo de amostra positiva
Não
Valor que representa uma amostra positiva. Se esse parâmetro não for especificado, o sistema selecionará aleatoriamente um valor da coluna de rótulo. Recomenda-se especificar este parâmetro para conjuntos de dados desbalanceados.
Fator de penalidade positiva
Não
Peso para amostras positivas. O valor padrão é 1,0 e o intervalo válido é (0, +∞).
Fator de penalidade negativa
Não
Peso da amostra negativa. O valor padrão é 1,0 e o intervalo válido é (0, +∞).
Coeficiente de convergência
Não
Erro de convergência. O valor padrão é 0,001. O intervalo válido é (0, 1).
Ajuste de execução
Número de núcleos
Não
Se não especificado, o sistema aloca recursos automaticamente.
Memória por núcleo
Não
Tamanho da memória para cada núcleo, em MB. Se não especificado, o sistema aloca recursos automaticamente.
-
Porta de saída
Gera um modelo de classificação binária no formato OfflineModel. A saída deste componente conecta-se a um componente Prediction.
Método 2: Comando PAI
Configure os parâmetros do componente executando um comando PAI em um componente SQL Script. Para mais informações, consulte SQL Script.
PAI -name LinearSVM -project algo_public
-DinputTableName="bank_data"
-DmodelName="xlab_m_LinearSVM_6143"
-DfeatureColNames="pdays,emp_var_rate,cons_conf_idx"
-DlabelColName="y"
-DpositiveLabel="0"
-DpositiveCost="1.0"
-DnegativeCost="1.0"
-Depsilon="0.001";
A tabela a seguir descreve os parâmetros do comando PAI.
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
inputTableName |
Sim |
N/A |
Nome da tabela de entrada. |
|
inputTablePartitions |
Não |
Todas as partições da tabela de entrada. |
Partições da tabela de entrada para treinamento. Formatos compatíveis:
Nota
Para especificar várias partições, separe-as por vírgulas (,). |
|
modelName |
Sim |
N/A |
Nome do modelo de saída. |
|
featureColNames |
Sim |
N/A |
Nomes das colunas de recursos na tabela de entrada. |
|
labelColName |
Sim |
N/A |
Nome da coluna de rótulo na tabela de entrada. |
|
positiveLabel |
Não |
Um valor selecionado aleatoriamente da coluna label. |
Valor que representa uma amostra positiva. |
|
positiveCost |
Não |
1,0 |
Peso da classe positiva, também conhecido como fator de penalidade positiva. O valor deve estar no intervalo (0, +∞). |
|
negativeCost |
Não |
1,0 |
Peso da classe negativa, também conhecido como fator de penalidade negativa. O valor deve estar no intervalo (0, +∞). |
|
epsilon |
Não |
0,001 |
Coeficiente de convergência. O valor deve estar no intervalo (0,1). |
|
enableSparse |
Não |
false |
Define se os dados de entrada estão no formato esparso. Valores válidos: true e false. |
|
itemDelimiter |
Não |
, (vírgula) |
Delimitador entre pares KV quando os dados da tabela de entrada estão no formato esparso. |
|
kvDelimiter |
Não |
: (dois pontos) |
Delimitador entre key e value quando os dados da tabela de entrada estão no formato esparso. |
|
coreNum |
Não |
Alocado pelo sistema |
Número de núcleos de computação. O valor deve ser um número inteiro positivo. |
|
memSizePerCore |
Não |
Alocado pelo sistema |
Tamanho da memória para cada núcleo, em MB. O valor deve ser um número inteiro no intervalo [1, 65536]. |
Exemplo
-
Importe os seguintes dados de treinamento.
id
y
f0
f1
f2
f3
f4
f5
f6
f7
1
-1
-0,294118
0,487437
0,180328
-0,292929
-1
0,00149028
-0,53117
-0,0333333
2
+1
-0,882353
-0,145729
0,0819672
-0,414141
-1
-0,207153
-0,766866
-0,666667
3
-1
-0,0588235
0,839196
0,0491803
-1
-1
-0,305514
-0,492741
-0,633333
4
+1
-0,882353
-0,105528
0,0819672
-0,535354
-0,777778
-0,162444
-0,923997
-1
5
-1
-1
0,376884
-0,344262
-0,292929
-0,602837
0,28465
0,887276
-0,6
6
+1
-0,411765
0,165829
0,213115
-1
-1
-0,23696
-0,894962
-0,7
7
-1
-0,647059
-0,21608
-0,180328
-0,353535
-0,791962
-0,0760059
-0,854825
-0,833333
8
+1
0,176471
0,155779
-1
-1
-1
0,052161
-0,952178
-0,733333
9
-1
-0,764706
0,979899
0,147541
-0,0909091
0,283688
-0,0909091
-0,931682
0,0666667
10
-1
-0,0588235
0,256281
0,57377
-1
-1
-1
-0,868488
0,1
-
Importe os seguintes dados de teste.
id
y
f0
f1
f2
f3
f4
f5
f6
f7
1
+1
-0,882353
0,0854271
0,442623
-0,616162
-1
-0,19225
-0,725021
-0,9
2
+1
-0,294118
-0,0351759
-1
-1
-1
-0,293592
-0,904355
-0,766667
3
+1
-0,882353
0,246231
0,213115
-0,272727
-1
-0,171386
-0,981213
-0,7
4
-1
-0,176471
0,507538
0,278689
-0,414141
-0,702128
0,0491804
-0,475662
0,1
5
-1
-0,529412
0,839196
-1
-1
-1
-0,153502
-0,885568
-0,5
6
+1
-0,882353
0,246231
-0,0163934
-0,353535
-1
0,0670641
-0,627669
-1
7
-1
-0,882353
0,819095
0,278689
-0,151515
-0,307329
0,19225
0,00768574
-0,966667
8
+1
-0,882353
-0,0753769
0,0163934
-0,494949
-0,903073
-0,418778
-0,654996
-0,866667
9
+1
-1
0,527638
0,344262
-0,212121
-0,356974
0,23696
-0,836038
-0,8
10
+1
-0,882353
0,115578
0,0163934
-0,737374
-0,56974
-0,28465
-0,948762
-0,933333
-
Crie um pipeline conforme mostrado na figura a seguir. Para mais informações, consulte modelagem de algoritmo.

-
Configure os parâmetros do componente Linear SVM conforme a tabela a seguir. Mantenha os valores padrão para todos os outros parâmetros.
Tipo de parâmetro
Parâmetro
Descrição
Fields Setting
Feature Columns
Selecione as colunas f0, f1, f2, f3, f4, f5, f6 e f7.
Label Column
Selecione a coluna y.
Execute o pipeline e visualize os resultados da previsão. Após a conclusão, a saída exibirá os resultados da classificação binária para as 10 linhas de dados de teste em cinco colunas: id, y (rótulo real), prediction_result (rótulo previsto: +1 ou -1), prediction_score e prediction_detail (detalhes da pontuação para as classes +1 e -1, no formato JSON).