Regressão logística do kernel vs SVM

32

Como é de conhecimento de todos, o SVM pode usar o método kernel para projetar pontos de dados em espaços mais altos, para que os pontos possam ser separados por um espaço linear. Mas também podemos usar a regressão logística para escolher esse limite no espaço do kernel, então quais são as vantagens do SVM? Como o SVM usa um modelo esparso no qual apenas esses vetores de suporte fazem contribuições na previsão, isso torna o SVM mais rápido na previsão?

FindBoat
fonte
1
Lâminas de Hastie são o que você está procurando
Yibo Yang

Respostas:

28

KLRs e SVMs

  1. O desempenho da classificação é quase idêntico nos dois casos.
  2. O KLR pode fornecer probabilidades de classe, enquanto o SVM é um classificador determinístico.
  3. A KLR tem uma extensão natural para a classificação multi-classe, enquanto que no SVM existem várias maneiras de estendê-la à classificação multi-classe (e ainda é uma área de pesquisa se existe uma versão com qualidades comprovadamente superiores às outras).
  4. Surpreendentemente ou sem surpresa, a KLR também possui ótimas propriedades de margem que os SVMs desfrutam (pelo menos no limite)!

Olhando para o acima, parece que a regressão logística do kernel é o que você deve usar. No entanto, existem certas vantagens que os SVMs desfrutam

  1. KLR é computacionalmente mais caro que SVM - vs que é o número de vetores de suporte.O(N3)O(N2k)k
  2. O classificador no SVM é projetado de forma que seja definido apenas em termos de vetores de suporte, enquanto no KLR, o classificador é definido em todos os pontos e não apenas nos vetores de suporte. Isso permite que os SVMs desfrutem de algumas acelerações naturais (em termos de escrita de código eficiente) que são difíceis de obter para a KLR.
TenaliRaman
fonte
7
+1 Gostaria de acrescentar que, se a complexidade computacional é um problema, não é muito difícil construir um modelo de regressão logística esparso do kernel escolhendo avidamente os vetores básicos para minimizar a perda regularizada no conjunto de treinamento ou outras abordagens. Veja os papéis na "Máquina de vetor informativa", por exemplo.
Dikran Marsupial
4
Além disso, muitas vezes, se você otimiza os parâmetros de kernel e de regularização de um SVM, acaba com um modelo em que praticamente todos os dados são vetores de suporte. A escassez de SVMs é um acidente feliz, não é realmente um bom ponto de venda da técnica, pois geralmente é possível obter uma maior escassez por outros meios.
Dikran Marsupial
1
@DikranMarsupial Obrigado pelo ponteiro para Informative Vector Machine. Conheço alguns trabalhos no Sparse KLR, mas até agora não acho que nenhum deles seja adequado para grandes conjuntos de dados. De qualquer maneira, o lançamento de uma boa implementação do KLR esparso, que seja amigável ao usuário, como libSVM ou SVM Light, pode percorrer um longo caminho em sua adoção. Desculpas se tais implementações já existe, porém eu não tenho conhecimento de qualquer (EDIT: Eu acho que você quis dizer "máquina vector Import" em vez de "máquina vector Informativo"?).
TenaliRaman
2
Se você estiver terminando com todos os pontos de dados como vetores de suporte, estará super adaptado. Isso acontece com o RBF muitas vezes. De fato, uma das coisas fundamentais que aprendi como usuário do SVM é verificar antes de tudo a fração de pontos escolhidos como vetores de suporte. Se houver mais de 30% dos dados, rejeito completamente esse modelo.
TenaliRaman
3
Não é correto que todos os pontos de dados sendo SVs signifiquem excesso de ajuste. Se o valor de C for pequeno, haverá pouca penalidade nas variáveis ​​de folga; é possível ter um classificador muito brando (que comete muitos erros no conjunto de treinamento) e a margem é tão ampla que todos os dados são vetores de suporte. Rejeitar modelos não esparsos não é uma boa regra geral, pois às vezes o SVM com o melhor desempenho de generalização é esparso. O número de SVs é um limite superior no erro deixar de fora, mas geralmente é um limite muito perdido!
Dikran Marsupial
15

Aqui está minha opinião sobre o assunto:

Os SVMs são uma maneira muito elegante de fazer a classificação. Há uma teoria legal, uma matemática bonita, eles generalizam bem e também não são muito lentos. Tente usá-los para regressão, porém, e fica confuso.

  • Aqui está um recurso sobre regressão SVM. Observe os parâmetros extras para modificar e a discussão aprofundada sobre algoritmos de otimização.

A regressão de processo gaussiana tem muitas das mesmas matemáticas de kernelly e funciona muito bem para a regressão. Mais uma vez, o muito elegante, e não é muito lento. Tente usá-los para classificação, e isso começa a parecer bastante arrogante.

  • Aqui está um capítulo do livro do GP sobre regressão.

  • Aqui está um capítulo sobre classificação, para comparação. Observe que você acaba com algumas aproximações complicadas ou um método iterativo.

Uma coisa boa sobre o uso de GPs para classificação, no entanto, é que ela fornece uma distribuição preditiva, em vez de uma simples classificação sim / não.

Stumpy Joe Pete
fonte
2
Os GPs +1 são uma boa alternativa ao KLR (embora o KLR geralmente ofereça melhor desempenho porque a seleção de modelos baseada em evidências pode dar errado com bastante facilidade se houver especificação incorreta do modelo) e a validação cruzada é geralmente preferível.
Dikran Marsupial
7

visite http://www.stanford.edu/~hastie/Papers/svmtalk.pdf

Algumas conclusões: O desempenho da classificação é muito semelhante. Possui propriedades de margem ideais limitantes. Fornece estimativas das probabilidades da classe. Frequentemente, são mais úteis que as classificações. Generaliza naturalmente a classificação da classe M por meio de regressão multit Logit do kernel.

pockeystar
fonte