dado um conjunto de dados arbitrário, você normalmente não sabe qual kernel pode funcionar melhor. Eu recomendo começar com a hipótese mais simples espaço primeiro — dado que você não sabe muito sobre seus dados — e trabalhar seu caminho até os espaços de hipótese mais complexos. Então, o kernel linear funciona bem se o seu conjunto de dados for separável linearmente; no entanto, se o seu conjunto de dados não for separável linearmente, um kernel linear não o irá cortar (quase no sentido literal ;)).,
para simplicidade (e propósitos de visualização), vamos assumir que o nosso conjunto de dados consiste apenas em 2 dimensões. Abaixo, eu plotei as regiões de decisão de uma SVM linear em 2 características do conjunto de dados iris:
isto funciona perfeitamente. And here comes the RBF kernel SVM:
Now, it looks like both linear and RBF kernel SVM would work equally well on this dataset. Então, por que prefere a hipótese mais simples e linear? Pense na navalha de Occam neste caso em particular., Linear SVM é um modelo paramétrico, um kernel RBF SVM não é, e a complexidade do último cresce com o tamanho do conjunto de treinamento. Não só é mais caro treinar um kernel RBF SVM, mas você também tem que manter a matriz do kernel ao redor, e a projeção para este espaço dimensional “infinito” superior onde os dados se tornam linearmente separáveis é mais caro também durante a previsão. Além disso, você tem mais hyperparameters para sintonizar, então a seleção de Modelos é mais caro também! E finalmente, é muito mais fácil exagerar um modelo complexo!,
ok, o que eu disse acima soa tudo muito negativo em relação aos métodos do kernel, mas realmente depende do conjunto de dados. E. g., se os seus dados não linearmente separáveis, não faz sentido usar um classificador linear:
neste caso, um kernel RBF faria muito mais sentido:
Em todo o caso, eu não me preocupar muito sobre o kernel polinomial. Na prática, é menos útil por razões de eficiência (computacional e preditiva)., Então, a Regra do polegar é: usar SVMs lineares (ou regressão logística) para problemas lineares, e kernels não lineares, como o kernel da função Base Radial para problemas não-lineares.
a região de decisão RBF kernel SVM é na verdade também uma região de decisão linear., O que o kernel RBF SVM, na verdade, não é para criar não-linear combinações dos seus recursos para elevar suas amostras para uma dimensão superior de funcionalidade espaço onde você pode usar um linear decisão limite para separar suas classes:
Ok, acima, eu andei por você através de um exemplo intuitivo, onde podemos visualizar nossos dados em 2 dimensões … mas o que fazemos num problema do mundo real, isto é, um conjunto de dados com mais de 2 dimensões? Aqui, queremos manter um olho em nossa função objetiva: minimizar a perda de dobradiças., Configuraríamos uma pesquisa de hiperparâmetro (pesquisa em grade, por exemplo) e compararíamos diferentes kernels uns com os outros. Baseado na função de perda (ou uma métrica de desempenho como precisão, F1, MCC, Roc auc, etc.) nós poderíamos determinar qual kernel é “apropriado” para a tarefa dada.
Bio: Sebastian Raschka é um cientista de dados e entusiasta de aprendizagem de máquinas com uma grande paixão por Python & open source. Autor de “Python Machine Learning”. Michigan State University.Original. Reposto com permissão.,relacionado:
- Quando É Que a aprendizagem profunda funciona melhor do que a SVM ou as florestas aleatórias?o desenvolvimento da classificação como uma máquina de aprendizagem porquê implementar algoritmos de aprendizagem a partir do zero?
Deixe uma resposta