Para dados lineares, é claro que isso não é útil, mas para dados não lineares, isso sempre parece útil. Usar classificadores lineares é muito mais fácil do que não linear em termos de tempo de treinamento e escalabilidade.
O @BartoszKP já explicou por que o truque do kernel é útil. Para responder completamente à sua pergunta, no entanto, gostaria de salientar que a kernelização não é a única opção para lidar com dados não linearmente separáveis.
Existem pelo menos três alternativas boas e comuns para a delinearização do modelo:
- Métodos baseados em rede neutal, nos quais você adiciona uma (ou mais) camadas de unidades de processamento, capazes de transformar seus dados em um caso linearmente separável. No caso mais simples, é uma camada baseada em sigmóides, que adiciona não linearidade ao processo. Uma vez inicializados aleatoriamente, eles recebem atualizações durante a otimização baseada em gradiente da camada superior (que atualmente resolve o problema linear).
- Em particular - técnicas de aprendizado profundo podem ser usadas aqui para preparar dados para uma classificação linear adicional. É uma idéia muito semelhante à anterior, mas aqui você primeiro treina suas camadas de processamento para encontrar um bom ponto de partida para o ajuste fino adicional com base no treinamento de algum modelo linear.
- Projeções aleatórias - você pode amostrar projeções (não lineares) de algum espaço predefinido e treinar um classificador linear sobre elas. Essa ideia é amplamente explorada no chamado aprendizado de máquina extremo , onde solucionadores lineares muito eficientes são usados para treinar um classificador simples em projeções aleatórias e obter um desempenho muito bom (em problemas não lineares na classificação e na regressão, veja, por exemplo, aprendizado extremo máquinas ).
Resumindo, a kernelização é uma ótima técnica de delinearização, e você pode usá-la quando o problema não for linear, mas isso não deve ser cego "se for". Este é apenas um dos pelo menos alguns métodos interessantes, que podem levar a vários resultados, dependendo do problema e dos requisitos. Em particular, o ELM tende a encontrar soluções muito semelhantes às fornecidas pelo SVM kernelizado, enquanto ao mesmo tempo pode ser treinado linhas de magnitude mais rapidamente (por isso aumenta muito melhor do que os SVMs kernelizados).
Tentarei fornecer uma resposta não técnica para sua pergunta.
De fato, o linear deve ser preferido e deve ser a primeira escolha pelos motivos mencionados, tempo de treinamento, escalabilidade, além de facilitar a interpretação do modelo final, a opção de trabalhar em primal ou duplo, mais tolerância ao sobreajuste etc.
Se o modelo linear não resultar em desempenho satisfatório, você pode tentar soluções não lineares. Algumas compensações a serem consideradas incluem:
fonte