Comme le suggère HighBandwidth, cela dépend si vous utilisez un SVM linéaire ou non linéaire (étant pédant si un noyau n'est pas utilisé, c'est un classifieur linéaire à marge maximale plutôt qu'un SVM).
Un classificateur linéaire à marge maximale n'est pas différent de tout autre classificateur linéaire en ce que si le processus de génération de données signifie qu'il y a des interactions entre les attributs, alors fournir ces termes d'interaction est susceptible d'améliorer les performances. Le classificateur linéaire de marge maximale est un peu comme la régression de crête, avec une légère différence dans le terme de pénalité qui est conçu pour éviter le sur-ajustement (compte tenu des valeurs appropriées pour le paramètre de régularisation), et dans la plupart des cas, la régression de crête et le classificateur de marge maximale donneront des performances similaires.
Si vous pensez que les termes d'interaction sont susceptibles d'être importants, vous pouvez les introduire dans l'espace des fonctionnalités d'un SVM en utilisant le noyau polynomial , qui donnera un espace caractéristique dans lequel chaque axe représente un monôme d'ordre ou moins, le paramètre affecte la pondération relative des monômes d'ordre différent. Ainsi, un SVM avec un noyau polynomial équivaut à ajuster un modèle polynomial dans l'espace attributaire, qui incorpore implicitement ces interactions.K(x,x′)=(x⋅x′+c)ddc
Étant donné suffisamment de fonctionnalités, tout classificateur linéaire peut ajuster trivialement les données. IIRC et points en "position générale" dans un espace dimensionnel peuvent être brisés (séparés de façon arbitraire) par un hyperplan (cf. dimension VC). Cela entraînera généralement un sur-ajustement sévère et doit donc être évité. Le point de la classification maximale des marges est de limiter ce sur-ajustement en ajoutant un terme de pénalité qui signifie que la plus grande séparation possible est obtenue (ce qui nécessiterait la plus grande déviation de tout exemple de formation pour produire une classification erronée). Cela signifie que vous pouvez transformer les données en un espace dimensionnel très élevé (où un modèle linéaire est très puissant) sans encourir trop de sur-ajustement.nn−1
Notez que certains noyaux donnent naissance à un espace d'entités de dimension infinie, où une classification "triviale" est garantie pour tout échantillon d'apprentissage fini en position générale. Par exemple, le noyau de la fonction de base radiale, , où l'espace caractéristique est l'orthant positif d'une hypersphère de dimension infinie. De tels noyaux font du SVM un approximateur universel, qui peut représenter essentiellement n'importe quelle frontière de décision.K(x,x′)=exp−γ∥x−x′∥2
Mais ce n'est qu'une partie de l'histoire. Dans la pratique, nous utilisons généralement un SVM à marge souple, où la contrainte de marge peut être violée, et il existe un paramètre de régularisation qui contrôle le compromis entre la maximisation de la marge (qui est un terme de pénalité, similaire à celui utilisé dans régression de crête) et l'ampleur des variables de relâchement (qui est semblable à la perte sur l'échantillon d'apprentissage). Nous évitons ensuite le sur-ajustement en ajustant le paramètre de régularisation, par exemple en minimisant l'erreur de validation croisée (ou certains liés à l'erreur de non-sortie), tout comme nous le ferions dans le cas de la régression de crête.
Ainsi, bien que le SVM puisse classifier trivialement l'ensemble d'apprentissage, il ne le fera généralement que si les paramètres de régularisation et du noyau sont mal choisis. La clé pour obtenir de bons résultats avec n'importe quel modèle de noyau réside dans le choix d'un noyau approprié, puis dans le réglage du noyau et des paramètres de régularisation pour éviter de sur-ou sous-ajuster les données.
Les réponses varient selon que vous utilisez SVM linéaire ou SVM noyau. Avec SVM linéaire, vous utilisez uniquement les fonctionnalités que vous lui donnez, et il ne prend pas en compte les interactions. Avec Kernel SVM, vous utilisez essentiellement de nombreuses fonctionnalités différentes, selon le noyau que vous avez choisi. S'il y a un hyperplan de séparation, c'est-à-dire si le détermine la classe où sont les fonctionnalités, vous pouvez alors avoir un ajustement complet des données d'entraînement. Habituellement, vous ne spécifiez pas les fonctionnalités, mais donnez un noyau qui est lié aux fonctionnalités comme . Cherchez à reproduire les espaces de Kernel Hilbert.sign(∑Ki=1βi(x)−β0) βi,i∈{1,2,...K} K K(x1,x2)=∑Ki=1βi(x1)βi(x2)
la source