Apprentissage supervisé (Python)
Introduction
Definition du problème
L'objet de ce TP est reconnaître des chiffres manuscripts par une classification via des SVM. On utilisera pour ce faire la bibliothèque python scikit learn.
Prise en main
Nous travaillerons sous python 3, a partir de fichiers scipts. Les programmes se lanceront donc simplementen tapant
prompt> python3 my_script.py
Lisez le script generator-examples.py et exécutez-le pour vous familiariser avec l'utilisation des générateurs (paresseux) en python. Posez des questions si besoin sur cette notion de paresse.
Nous allons maintenant utiliser scikit pour récupérer une base de chiffres manuscripts, et en afficher certains. C'est ce que fait le script scikit-digits.py.
Apprentissage
Lisez (en comprenant... posez des questions au besoin) l'exemple scikit-svm.py, qui montre comment utiliser une SVM sur vos données. Nous utilisons une C-SVC, avec du one-versus-all pour gérer le multi-class, ainsi qu'un noyau linéaire.
Nota : Vous pouvez vouloir retrouver tous les coefficients des classifiers impliqués dans le classifier one-versus-one. C'est un peu technique, vu la façon dont sont rangés les coefficients dans les structures de données. Si besoin toutefois, l'exemple sickit-supports.py vous montre comment faire.
Comment interpréter ces résultats ?
Améliorez les performances. Vous pourrez par exemple utiliser un noyau gaussien, une ν-SVM, ... Tout est décrit dans la documentation.