-
SVM : où commencer ?
Bonjour,
Dans le cadre d’un projet assez conséquent, j’en suis venu au résultat que je dois programmer un algorithme SVM. Or, je n’y connait pas grand chose en la matière.
J’ai vu qu’avec la bibliothèque scikitLearn de Python, je peux implémenter l’algorithme SVM, il fournit aussi des petits tutoriels.
Ma question est : puis-je me suffire de regarder des tutoriels d’implémentation de cet algorithme en Python (sur des forums, des vidéos, etc.) ou faut-il que je lise des cours pour apprendre comment fonctionne vraiment et théoriquement SVM ; bien sûr, je pense qu’il est mieux d’apprendre la théorie d’abord, mais dans un but purement pratique, est-ce que ça peut le faire ?
Merci :)
-
:salut:
Si tu parles de scikit-learn, tu ne veux très probablement pas implémenter les SVM, mais simplement les utiliser. Regarde la doc du projet, les explications sur les algorithmes sont assez sommaires (ça dépend des algos, d'accord) mais suffisantes pour comprendre ce qui se passe, ça te fera une introduction suffisante. Ensuite, si tu cherches à comprendre dans quels cas ne pas utiliser SVM, certains noyaux, etc., les détails sur les algos deviendront utiles.
Si tu veux vraiment implémenter le SVM toi-même (mauvaise idée, sauf pour bien comprendre l'algo), alors il faudra te plonger un peu plus dans les arcanes, avec de sombres affaires de dualisation, par exemple, ce qui nécessite un relativement bon niveau en maths (ou pisser des lignes de code sans savoir ce que ça fait te passionne…).
-
Ce que je comprends , c'est que Hippocrene veut installer et utiliser Scikit-Learn // SVM.
Rassure toi, sur 100 personnes qui utilisent Scikit-Learn, 99 seraient totalement incapables d'expliquer le pourquoi du comment de ce qu'ils obtiennent.
On a une boite noire, on lui colle des données, et on récupère une autre série de données en sortie.
Mais lire de la littérature sur le sujet reste très utile. On a quelques leviers sur lesquels on peut jouer, et qui peuvent fortement influencer le résultat.
Pour bien jouer avec les leviers, une bonne technique est la suivante :
- Tu as 1000 individus pour lesquels tu connais la classification voulue.
- Tu prends 800 individus parmi ces 1000.
- Tu fais tourner ton modèle, tu obtiens un taux T1 de bonne classification sur les 800 individus en question. Tu le fais tourner aussi sur les 200 autres individus, et tu obtiens un taux T2 de bonne classification.
Si T1 est très supérieur à T2, c'est que tu as OVER-alimenté ton modèle. L'objectif n'est pas d'avoir un T1 le plus élevé possible, mais un T2 le plus élevé possible. Si tu as bien assimilé cela, tu es armé pour utiliser Scikit-learn.
-
Merci :)
Je vais utiliser SVM et en parallèle, si j’ai le temps, je regarderai un peu la théorie des SVM