SVM, interaction variable et ajustement des données de formation


12

J'ai 2 questions générales / plus théoriques.

1) Je suis curieux de savoir comment les SVM gèrent les interactions variables lors de la construction de modèles prédictifs. Par exemple, si j'ai deux fonctionnalités f1 et f2 et que la cible dépend de f1, f2 et disons f1 * f2 (ou d'une fonction h (f1, f2)), SVM convient-il (pas seulement sur OOS mais même sur les données d'entraînement) s'améliorer en incluant f1, f2 et h (f1, f2) dans les fonctionnalités plutôt que d'inclure f1 et f2? L'algorithme SVM traite-t-il des interactions de fonctionnalités? Il semble que ce soit le cas avec la façon dont le SVM essaie de créer des hyperplans dans un espace de dimension supérieure, mais je ne suis pas sûr de vouloir le demander.

2) Lors de l'ajustement d'un SVM sur des données d'entraînement, étant donné suffisamment de fonctionnalités et la recherche des paramètres optimaux (via la recherche de force brute ou autre), un SVM s'adaptera-t-il toujours trivialement aux données d'entraînement? Je ne sais pas si j'ai bien formulé, mais en gros, s'il y a suffisamment de variance / bruit dans les fonctionnalités, un SVM s'adaptera-t-il toujours à 100% aux données d'entraînement? Inversement, si le SVM ne correspond pas à 100% aux données d'entraînement, cela signifie-t-il qu'il y a des informations (ou d'autres caractéristiques) qui affectent la variable cible qui ne sont pas capturées dans les données?

Merci

Petite précision. Je fais référence aux SVM du noyau en particulier

Réponses:


8

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)=(xx+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.nn1

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γxx2

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.


Merci Dikran. C'était extrêmement détaillé et utile. Je pense que je comprends les réponses aux questions. Un suivi rapide. Comment procéder pour choisir le noyau approprié pour les SVM? Serait-ce similaire aux paramètres de régularisation / noyau (par exemple via la validation croisée)? Ou existe-t-il une base théorique pour le choix? Si le noyau rbf fait du SVM un approximateur universel, je suppose que la sélection du noyau est un autre paramètre à régler, mais je ne suis pas sûr. Comme vous pouvez probablement le constater, je suis relativement nouveau dans ce domaine.
tomas

Le choix d'un noyau est souvent un bon moyen d'intégrer une connaissance experte du problème dans le classificateur, par exemple pour un système de reconnaissance de caractères manuscrit, vous voudrez probablement utiliser un noyau invariant aux petites rotations et traductions de l'image. Le choix automatique d'un noyau peut être réalisé par validation croisée (ce que je ferais) ou par une erreur de non-sortie (qui peut être effectuée efficacement pour les SVM). Cependant, si l'ensemble de données est petit, le choix d'un noyau via la validation croisée peut être délicat en raison d'un surajustement de l'erreur de validation croisée.
Dikran Marsupial

Pour de nombreuses applications, les noyaux linéaires ou RBF sont de bons choix par défaut, et il y a souvent relativement peu à gagner à explorer une gamme plus large de noyaux (en l'absence de connaissances expertes du problème).
Dikran Marsupial

1

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(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.