Executei um SVM em um determinado conjunto de dados e fiz a seguinte observação: Se eu alterar o número de recursos para a construção do classificador, o número de vetores de suporte resultantes também será alterado.
Eu gostaria de saber como explicar esse tipo de cenário.
machine-learning
classification
svm
kernel-trick
user3269
fonte
fonte
Respostas:
Se você observar o problema de otimização que o SVM resolve:
ryEu( w ⋅ xEu- b ) ≥ 1 - ξEu, ξ Eu≥ 0 , i = 1 , … n
Quando você compara esses dois problemas de otimização e trabalha com a matemática, verifica-se que não há uma relação difícil entre o número de recursos e o número de vetores de suporte. Poderia ir de qualquer jeito.
É útil pensar em um caso simples. Imagine um caso de 2 dim onde suas características negativas e positivas estão agrupadas em torno de (-1, -1) e (1,1), respectivamente, e são separáveis com um hiperplano de separação diagonal com 3 vetores de suporte. Agora imagine abandonar o recurso do eixo y, para que seus dados agora sejam projetados no eixo x. Se os dados ainda estiverem separáveis, digamos em x = 0, você provavelmente terá apenas dois vetores de suporte, um de cada lado, portanto, adicionar o recurso y aumentaria o número de vetores de suporte. No entanto, se os dados não forem mais separáveis, você obterá pelo menos um vetor de suporte para cada ponto do lado errado de x = 0; nesse caso, adicionar o recurso y reduziria o número de vetores de suporte.
Portanto, se essa intuição estiver correta, se você estiver trabalhando em espaços de recursos de alta dimensão ou usando um kernel que mapeia para um espaço de recursos de alta dimensão, é mais provável que seus dados sejam separáveis, portanto, a adição de um recurso tenderá a para adicionar outro vetor de suporte. Considerando que, se seus dados não estiverem separáveis no momento e você adicionar um recurso que melhore significativamente a separabilidade, é mais provável que você veja uma diminuição no número de vetores de suporte.
fonte