Je m'attendrais à ce que le SVM à marge souple soit meilleur même lorsque l'ensemble de données d'entraînement est linéairement séparable. La raison en est que dans un SVM à marge dure, un seul outlier peut déterminer la frontière, ce qui rend le classificateur trop sensible au bruit dans les données.
Dans le diagramme ci-dessous, un seul outlier rouge détermine essentiellement la frontière, ce qui est le signe d'un overfitting
Pour avoir une idée de ce que fait le SVM à marge souple, il est préférable de le regarder dans sa formulation duale, où vous pouvez voir qu'il a le même objectif de maximisation de la marge (la marge peut être négative) que le SVM à marge dure, mais avec une contrainte supplémentaire selon laquelle chaque multiplicateur de Lagrange associé au vecteur de support est borné par C. Essentiellement, cela limite l'influence de tout point sur la frontière de décision, pour la dérivation, voir la Proposition 6.12 dans "An Introduction to Support Vector Machines and Other Kernel-based Learning Methods" de Cristianini/Shaw-Taylor.
Le résultat est que le SVM à marge souple pourrait choisir une frontière de décision qui a une erreur d'entraînement non nulle même si l'ensemble de données est linéairement séparable, et il est moins susceptible d'overfitting.
Voici un exemple utilisant libSVM sur un problème synthétique. Les points entourés montrent les vecteurs de support. Vous pouvez voir que la diminution de C fait que le classificateur sacrifie la séparabilité linéaire pour gagner en stabilité, dans un sens où l'influence de tout datapoint unique est maintenant bornée par C.
Signification des vecteurs de support:
Pour le SVM à marge dure, les vecteurs de support sont les points qui sont "sur la marge". Dans l'image ci-dessus, C=1000 est assez proche du SVM à marge dure, et vous pouvez voir que les points entourés sont ceux qui toucheront la marge (la marge est presque nulle dans cette image, donc c'est essentiellement la même chose que le plan hyperplan séparateur)
Pour le SVM à marge souple, il est plus facile de les expliquer en termes de variables duales. Votre prédicteur de vecteurs de support en termes de variables duales est la fonction suivante.
Ici, les alphas et b sont des paramètres trouvés pendant la procédure d'entraînement, les xi's, yi's sont votre ensemble d'entraînement et x est le nouveau datapoint. Les vecteurs de support sont les datapoints de l'ensemble d'entraînement qui sont inclus dans le prédicteur, c'est-à-dire ceux avec un paramètre alpha non nul.
1 votes
Je pense que dans le cas d'un ensemble de données linéairement séparable, il n'est pas nécessaire d'utiliser SVM, SVM est utile lorsque vous n'avez pas une bonne séparation linéaire des données. L'honneur de SVM est les marges souples, dans votre cas vous n'en aviez pas besoin.