SVM, interação variável e ajuste de dados de treinamento

12

Eu tenho 2 questões gerais / mais teóricas.

1) Estou curioso para saber como os SVMs lidam com interações variáveis ​​ao criar modelos preditivos. Por exemplo, se eu tenho dois recursos f1 e f2 e o destino depende de f1, f2 e digamos f1 * f2 (ou alguma função h (f1, f2)), o SVM se encaixa (não apenas no OOS, mas também nos dados de treinamento) melhorar ao incluir f1, f2 eh (f1, f2) nos recursos, além de incluir f1 e f2? O algoritmo SVM lida com interações de recursos? Parece que sim com a forma como o SVM tenta criar hiperplanos no espaço dimensional mais alto, mas não tenho certeza se isso queria perguntar.

2) Ao ajustar um SVM em dados de treinamento, considerando recursos suficientes e encontrando os parâmetros ideais (via busca por força bruta ou qualquer outra coisa), um SVM sempre ajustará trivialmente os dados de treinamento? Não tenho certeza se eu escrevi isso direito, mas basicamente, se houver variação / ruído suficiente nos recursos, um SVM sempre ajustará os dados de treinamento 100%? Por outro lado, se o SVM não ajustar os dados de treinamento 100%, isso significa que existem algumas informações (ou outros recursos) que afetam a variável de destino que não é capturada nos dados?

obrigado

Pequeno esclarecimento. Estou me referindo aos SVMs do kernel especificamente

tomas
fonte

Respostas:

8

Como sugere a highBandwidth, depende se você está usando um SVM linear ou não linear (sendo pedante se um kernel não for usado, é um classificador linear de margem máxima em vez de um SVM).

Um classificador linear de margem máxima não é diferente de qualquer outro classificador linear, pois se o processo de geração de dados significa que há interações entre os atributos, fornecer esses termos de interação provavelmente melhorará o desempenho. O classificador linear de margem máxima é semelhante à regressão de crista, com uma pequena diferença no termo de penalidade que é projetado para evitar o super ajuste (dados adequados para o parâmetro de regularização) e, na maioria dos casos, a regressão de crista e o classificador de margem máxima proporcionam desempenho semelhante.

Se você acha que os termos de interação provavelmente são importantes, pode introduzi-los no espaço de recursos de um SVM usando o kernel polinomial , o que fornecerá um espaço de característica em que cada eixo representa um monômio de ordem d ou menor, o parâmetro c afeta a ponderação relativa de monômios de ordens diferentes. Portanto, um SVM com um kernel polinomial é equivalente a ajustar um modelo polinomial no espaço de atributo, que incorpora implicitamente essas interações.K(x,x)=(xx+c)ddc

Dadas as características suficientes, qualquer classificador linear pode ajustar trivialmente os dados. IIRC e pontos na "posição geral" em um n - 1nn1o espaço dimensional pode ser quebrado (separado de qualquer maneira arbitrária) por um hiperplano (cf dimensão VC). Fazer isso geralmente resultará em excesso de ajuste e, portanto, deve ser evitado. O ponto da classificação máxima da margem é limitar esse ajuste excessivo adicionando um termo de penalidade que significa que a maior separação possível é alcançada (o que exigiria o maior desvio de qualquer exemplo de treinamento para produzir uma classificação incorreta). Isso significa que você pode transformar os dados em um espaço dimensional muito alto (onde um modelo linear é muito poderoso) sem incorrer em excesso de ajuste.

Observe que alguns núcleos dão origem a um espaço de recurso dimensional infinito, onde é garantida uma classificação "trivial" para qualquer amostra de treinamento finito em posição geral. Por exemplo, o núcleo da função de base radial, , em que o espaço de feição é o ponto positivo de uma hiperesfera dimensional infinita. Esses kernels tornam o SVM um aproximador universal, que pode representar essencialmente qualquer limite de decisão.K(x,x)=expγxx2

No entanto, isso é apenas parte da história. Na prática, geralmente usamos um SVM de margem flexível, onde a restrição de margem pode ser violada, e há um parâmetro de regularização que controla o trade-off entre maximizar a margem (que é um termo de penalidade, semelhante ao usado em regressão de crista) e a magnitude das variáveis ​​de folga (que é semelhante à perda na amostra de treinamento). Em seguida, evitamos o ajuste excessivo ajustando o parâmetro regularsation, por exemplo, minimizando o erro de validação cruzada (ou algum vinculado ao erro deixar de fora), exatamente como faríamos no caso de regressão de crista.

Portanto, embora o SVM possa classificar trivialmente o conjunto de treinamento, geralmente o fará apenas se os parâmetros de regularização e kernel forem mal escolhidos. A chave para alcançar bons resultados com qualquer modelo de kernel está na escolha de um kernel apropriado e, em seguida, no ajuste do kernel e nos parâmetros de regularização para evitar o excesso ou a falta de ajuste dos dados.

Dikran Marsupial
fonte
Obrigado Dikran. Isso foi extremamente detalhado e útil. Eu acho que entendo as respostas para as perguntas. Um acompanhamento rápido. Como escolher o kernel apropriado para SVMs? Seria semelhante aos parâmetros de regularização / kernel (por exemplo, via validação cruzada)? Ou existe alguma base teórica para a escolha? Se o kernel rbf faz do SVM um aproximador universal, eu acho que a seleção do kernel é outro parâmetro a ser ajustado, mas não tenho certeza. Como você provavelmente pode dizer, sou bastante novo nisso.
tomas
Escolher um kernel geralmente é uma boa maneira de incorporar no classificador o conhecimento especializado do problema, por exemplo, para um sistema de reconhecimento de caracteres manuscrito, você provavelmente desejaria usar um kernel invariável a pequenas rotações e traduções da imagem. A escolha de um kernel automaticamente pode ser obtida por meio de validação cruzada (que é o que eu faria) ou um erro associado ao erro de exclusão única (que pode ser executado com eficiência para SVMs). No entanto, se o conjunto de dados for pequeno, a escolha de um kernel por meio de validação cruzada pode ser complicada devido à correção excessiva do erro de validação cruzada.
Dikran Marsupial
Para muitas aplicações, os kernels lineares ou RBF são boas opções padrão, e geralmente há pouco a ganhar com a exploração de uma gama mais ampla de kernels (na ausência de conhecimento especializado do problema).
Dikran Marsupial
1

sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

alta largura de banda
fonte