Que tipos de problemas de aprendizado são adequados para as Máquinas de Vetor de Suporte?

16

Quais são as características ou propriedades que indicam que um determinado problema de aprendizado pode ser resolvido usando máquinas de vetores de suporte?

Em outras palavras, o que é que, quando você vê um problema de aprendizagem, faz você "oh, eu definitivamente devo usar SVMs para isso '', em vez de redes neurais, árvores de decisão ou qualquer outra coisa?

Ragnar
fonte
Removida a supervised learningtag, pois as SVM também podem ser usadas em problemas de aprendizado não supervisionados .
Dawny33
Pode explicar como o svm pode ser usado para problemas não supervisionados e qual pacote o implementa?
GeorgeOfTheRF 12/01
@ML_Pro Acesse o link que incluí no meu comentário.
Dawny33
3
@ Dawny33, a aplicação de SVMs à aprendizagem não supervisionada é a exceção e não a regra. SVMs são um método de aprendizado supervisionado.
AN6U5
1
@ AN6U5 Obrigado por informar :) Por exception, você quer dizer que é apenas uma emenda e não a convenção, certo?
Dawny33

Respostas:

7

O SVM pode ser usado para classificação (distinção entre vários grupos ou classes) e regressão (obtenção de um modelo matemático para prever algo). Eles podem ser aplicados a problemas lineares e não lineares.

Até 2006, eles eram o melhor algoritmo de propósito geral para aprendizado de máquina. Eu estava tentando encontrar um artigo que comparasse muitas implementações dos algoritmos mais conhecidos: svm, redes neurais, árvores, etc. Não consegui sentir muito (você terá que acreditar em mim, coisa ruim). No artigo, o algoritmo que obteve o melhor desempenho foi svm, com a biblioteca libsvm.

Em 2006, Hinton criou um aprendizado profundo e redes neurais. Ele melhorou o estado da arte atual em pelo menos 30%, o que é um grande avanço. No entanto, o aprendizado profundo apenas obtém um bom desempenho para grandes conjuntos de treinamento. Se você tem um pequeno conjunto de treinamento, sugiro usar svm.

Além disso, você encontra aqui um infográfico útil sobre quando usar diferentes algoritmos de aprendizado de máquina pelo scikit-learn. No entanto, até onde sei, não há acordo entre a comunidade científica sobre se um problema possui recursos X, Y e Z, então é melhor usar o svm. Eu sugeriria tentar métodos diferentes. Além disso, não esqueça que svm ou redes neurais são apenas um método para calcular um modelo. É muito importante também os recursos que você usa.

hoaphumanoid
fonte
1
@HoapHumaboid Eu sei sobre SVC e SVR e que podemos usar Kernels para aplicar SVMs a PNLs e estou ciente de documentos que comparam SVMs com outros algoritmos de aprendizagem ... Fiquei pensando nas características de um possível problema de aprendizagem que tornaria evidente que deve ser abordado com um SVM. Em outras palavras, o que é que quando você vê um problema de aprendizagem faz você ir "oh I definitivamente deve utilizar SVMs para este '' ao invés de NNs ou árvores de decisão ou qualquer outra coisa
Ragnar
@Ragnar consulte a minha resposta editada
hoaphumanoid
2

Vamos supor que estamos em uma configuração de classificação.

Pois a svmengenharia de recursos é a pedra angular:

  • os conjuntos devem ser linearmente separáveis. Caso contrário, os dados precisam ser transformados (por exemplo, usando Kernels). Isso não é feito pelo próprio algo e pode explodir o número de recursos.
  • Eu diria que o svmdesempenho sofre à medida que aumentamos o número de dimensões mais rapidamente do que outras metodologias (conjunto de árvores). Isso ocorre devido ao problema de otimização restrito que apóia svms. Às vezes, a redução de recursos é viável, às vezes não, e é nesse momento que não podemos realmente abrir o caminho para um uso eficaz desvm
  • svmprovavelmente enfrentará um conjunto de dados em que o número de recursos é muito maior que o número de observações. Isso, novamente, pode ser entendido observando o problema de otimização restrito.
  • variáveis ​​categóricas não são manipuladas prontamente pelo svmalgoritmo.
pincopallino
fonte