2012-05-22 9 views
0

Je dois implémenter le concept de classificateur de chiffres SVM. Ce devrait être le simple qui classifie l'entrée que j'écris dans le canevas. Mais j'ai besoin de l'implémenter à partir de zéro. La langue n'a pas d'importance.SVM pour la reconnaissance des chiffres

Quelqu'un pourrait-il me fournir une instruction étape par étape sur la façon de le faire. Tous les liens pour les matériaux seront utiles. Mais j'ai besoin de quelque chose de plus lié à la pratique que la théorie. Parce que j'ai déjà lu des articles théoriques à ce sujet. Et avoir des idées de base sur la façon dont cela devrait fonctionner, mais toujours avoir quelques problèmes comment convertir ces idées en exemples concrets.

Merci beaucoup.

Répondre

0

This est article de perfcet sur SVM. Ils fournissent une théorie et un guide étape par étape - comment mettre en œuvre cela.

5

Vous ne trouverez pas d'instructions pas à pas pour l'écriture d'un fichier SVM. Il est important de comprendre la théorie et les mathématiques qui les sous-tendent car elles jouent un rôle important dans les algorithmes et les algorithmes sont difficiles à comprendre sans ce contexte.

Le meilleur endroit pour commencer serait avec l'algorithme Sequential Minimal Optimization (SMO) de John Platt. J'ai mis en œuvre ce document avant, mais Platt suppose beaucoup de connaissances de base. Un excellent livre d'introduction est le livre de Lutz Hamel Knowledge Discovery with Support Vector Machines. Ce livre motive tout, donc vous n'avez pas besoin de connaître ou d'être à jour sur les statistiques et la théorie de l'optimisation si vous voulez comprendre SVM.

Si vous voulez vraiment aller super simple, alors commencez par ce Simplified SMO algorithm de UNT pour vous mouiller les pieds. C'est l'algorithme SMO sans aucune des optimisations.

L'algorithme SMO de Platt n'est pas l'état de la technique à ce stade, mais il est à la base de nombreux algorithmes actuellement utilisés. Les deux LibSVM et SVMLight ont leur code source disponible en ligne. Ils sont basés sur deux optimisations différentes du concept SMO.

Si vous êtes d'accord avec un niveau supérieur, vous pouvez implémenter un SVM en utilisant un package d'optimisation Convex comme CVX, qui a des interfaces dans MatLab et d'autres langages. Dans ce cas, vous devez simplement configurer le problème d'optimisation au cœur de SVM et demander au solveur de trouver la solution pour vous. L'implémentation d'un solveur QP à partir de zéro n'est pas quelque chose que je recommanderais d'essayer. Si vous voulez utiliser une bibliothèque existante, et que vous parlez de zéro, vous parlez de traiter les données plus que l'algorithme SVM lui-même, vous pouvez regarder dans les implémentations existantes comme celles disponibles dans R. "Support Vector Machines in R" se penche sur la façon de le faire. Le livre de Hamel utilise également R.

Des jeux de données de reconnaissance de chiffres manuscrits ont été utilisés dans de nombreuses SVM papers et utilisés pour classifier comparisons.

Questions connexes