Un ensemble d'entraînement clairsemé affecte-t-il négativement un SVM?

12

J'essaie de classer les messages en différentes catégories à l'aide d'un SVM. J'ai compilé une liste de mots / symboles souhaitables à partir de l'ensemble de formation.

Pour chaque vecteur, qui représente un message, je mets la ligne correspondante à 1si le mot est présent:

"corpus" est: [mary, little, lamb, star, twinkle]

premier message: "mary avait un petit agneau" -> [1 1 1 0 0]

deuxième message: "petite étoile scintillante" -> [0 1 0 1 1]

Je pense que c'est une configuration assez courante avec SVM, mais ma question est, avec des milliers de mots dans l'ensemble, que se passe-t-il s'il n'y a que 1-2 mots par message qui apparaissent réellement? La dépendance linéaire de mon ensemble de vecteurs d'apprentissage va-t-elle affecter négativement la capacité de l'algorithme à converger?

jonsca
la source
1
Avez-vous beaucoup de données, mais peu de données étiquetées? Si c'est le cas, vous voudrez peut-être envisager un apprentissage semi-supervisé. L'utilisation de certaines de vos données non étiquetées devrait à la fois augmenter votre précision et diminuer le risque de sur-ajustement.
neurone
@neuron J'avais pensé à faire ça. Qu'est-ce qu'un exemple d'architecture semi-supervisée?
jonsca
1
Je n'ai utilisé que des méthodes "hackish" de semi-supervisé (alias modèle de train sur trainingset, utiliser le modèle pour prédire sur les données, extraire toutes les données avec une probabilité de prédiction> 0,5 et fusionner avec trainingset, et créer du moel sur le nouveau trainingset). Mais j'ai vu flexmix mentionné quelques endroits (voir cran.r-project.org/web/packages/flexmix )
neurone
@neuron D'accord, bien, parce que les articles que j'ai vus (quoique avec une recherche rapide de type wikipedia) n'étaient pas très spécifiques sur les architectures. Je vais vérifier flexmix- cependant, j'ai "Learn R" sur mon calendrier depuis quelques années maintenant!
jonsca
Faites-le, R est AMAZING, les bibliothèques qui deviennent disponibles sont tout simplement ahurissantes. Des choses comme caret, sqldf / rmysql, foreach (parallèle pour), ggplot2 et googlevis ne sont que des outils incroyablement utiles. Je n'étais pas fan de la langue au début, mais elle a grandi sur moi, et j'aime vraiment l'utiliser maintenant.
neurone

Réponses:

9

La rareté et la dépendance linéaire sont deux choses différentes. La dépendance linéaire implique que certains des vecteurs de caractéristiques sont de simples multiples d'autres vecteurs de caractéristiques (ou les mêmes appliqués aux exemples). Dans la configuration que vous avez décrite, je pense qu'une dépendance linéaire est peu probable (cela implique que deux termes ont la même fréquence (ou des multiples de celle-ci) dans tous les documents). Le simple fait d'avoir des fonctionnalités clairsemées ne présente aucun problème pour le SVM. Une façon de voir cela est que vous pourriez faire une rotation aléatoire des axes de coordonnées, ce qui laisserait le problème inchangé et donnerait la même solution, mais rendrait les données complètement non clairsemées (c'est en partie comment fonctionnent les projections aléatoires ).

Il semble également que vous parliez du SVM dans le primal . Notez que si vous utilisez le noyau SVM, ce n'est pas parce que vous avez un jeu de données clairsemé que la matrice du noyau sera clairsemée. Il peut cependant être de bas rang. Dans ce cas, vous pouvez réellement profiter de ce fait pour une formation plus efficace (voir par exemple une formation SVM efficace utilisant des représentations de noyau de bas rang ).

tdc
la source
1
Certes, j'étais un peu rapide et lâche avec ma terminologie. Logique.
jonsca