2010-05-11 27 views
5

Je souhaite utiliser SMO (Optimisation Minimale Séquentielle) pour former une machine SVM (Support Vector Machine). Quelqu'un peut-il suggérer des bibliothèques C++ existantes qui implémentent SMO?Recherche de bibliothèques qui implémentent une optimisation séquentielle minimale en C++

Je prévois d'utiliser ceci pour former un SVM pour trouver un objet dans une image (probablement un humain).

+0

Wow, je suis généralement assez tolérant avec les locuteurs non-natifs, mais cette question est juste déroutante. Sûrement même google translate pourrait faire un meilleur travail. Veuillez réessayer et préciser SVM et SMO afin que nous ayons une meilleure chance de comprendre la question. –

+0

D'une recherche rapide, il semble y avoir très peu de code publiquement publié pour le faire; la plupart des références que j'ai trouvées étaient des articles décrivant quelque chose hors de ma ligue! M. – Max

+0

@Caspin: Je n'ai pas eu beaucoup de mal à le lire, mais la plus grande partie de ma compréhension est basée sur l'utilisation de SMO googlé pour comprendre de quoi il parlait. Et il y avait beaucoup trop d'articles SQL sans rapport: /. Eh bien, c'est en anglais courant maintenant. – Brian

Répondre

4
  1. Visitez this CiteSeer page.
  2. Cliquez sur "voir ou télécharger".
  3. Copiez/collez ou extrayez le code C++ de la section d'implémentation (pages 15 et suivantes).

Je pense qu'une recherche plus approfondie pourrait trouver une copie déjà construite. J'avoue que ce code est une implémentation brute et nécessitera probablement quelques manipulations pour le rendre compatible avec votre propre logiciel. De plus, je ne sais pas quel type de licence s'applique ici.

2

Je vous suggère d'essayer svmlight. Je ne suis pas sûr qu'il implémente SMO, cependant. Je sais que Weka a une implémentation java d'un classificateur SVM utilisant SMO, ce qui peut aussi vous être utile. Il comprend également de nombreux autres types de classificateurs, et il est assez facile à utiliser.

Удачи!

+1

weka fait tout. C'est un peu complexe, mais incroyablement complet. –

1

Consultez LIBSVM (http://www.csie.ntu.edu.tw/~cjlin/libsvm/). Je ne l'ai jamais utilisé avec C++, mais ses crochets MATLAB ont fonctionné parfaitement. De plus, quelques articles que j'ai trouvés utilisaient la bibliothèque comme comparaison de base pour leurs améliorations algorithmiques à SMO.