Scikit learn: apprentissage statistique en Python

2,487 views
2,201 views

Published on

Présentation au niveau sur "scikit-learn", un toolkit d'apprentissage statistique (machine learning) en Python.

Philosophie et strategie du projet, ainsi que API et très bref examples de code.

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,487
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
61
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Scikit learn: apprentissage statistique en Python

  1. 1. Scikit Learn Apprentissage statistique en Python Ga¨el Varoquaux — http://scikit-learn.org
  2. 2. Vision du projet L’apprentissage statistique pour tous Pas de domaine d’application sp´ecifique Pas de pr´erequis en machine learning Librairie logicielle de qualit´e API pens´ees pour l’utilisateur D´eveloppement communautaire License BSD, contributeurs tr`es vari´es
  3. 3. Philosophie 1. Keep it simple Ne pas chercher `a tout r´esoudre 2. Facilit´e d’utilisation Bonne documentation Facile `a debugger 3. Efficacit´e num´erique Dans les limites de 1 4. Limiter les d´ependances La distribution est un probl`eme en soit
  4. 4. Choix technologiques Python, what else? Langage haut-niveau, - interactif, - facile `a debugger, - d’application g´en´erale ´Ecosyst`eme tr`es dynamique
  5. 5. Choix technologiques + Numpy + Scipy calcul num´erique, alg`ebre lin´eaire, algorithmique sur graphe numpy.array: conteneur universel de donn´ees structur´ees Les outils des sciences num´eriques sont sous-utilis´es par la communaut´e “data”
  6. 6. Performance scikit-learn mlpy pybrain pymvpa mdp shogun SVM 5.2 9.47 17.5 11.52 40.48 5.63 LARS 1.17 105.3 - 37.35 - - Elastic Net 0.52 73.7 - 1.44 - - kNN 0.57 1.41 - 0.56 0.58 1.36 PCA 0.18 - - 8.93 0.47 0.33 k-Means 1.34 0.79 ∞ - 35.75 0.68 Optimisations algorithmiques et non bas niveau Minimiser les copies des donn´ees
  7. 7. API: sp´ecifier un mod`ele Un concept central: l’estimateur Instanci´e sans les donn´ees Mais en sp´ecifiant ses param`etres from s k l e a r n . n e i g h b o r s import KNear estNeig hbo r s e s t i m a t o r = KN ea r estNe ig h b or s ( n n e i g h b o r s =2)
  8. 8. API: entraˆıner un mod`ele Apprendre `a partir de donn´ees e s t i m a t o r . f i t (X, Y) o`u: X est un tableau numpy de forme nobservations × ndescripteurs y est un tableau numpy, entier ou flottant nobservations
  9. 9. API: utiliser un mod`ele Prediction: classification, regression Y t e s t = e s t i m a t o r . p r e d i c t ( X t e s t ) Transformation: reduction de dimension, filtre X new = e s t i m a t o r . t r a n s f o r m ( X t e s t ) Estimation de densit´e, vraissemblance t e s t s c o r e = e s t i m a t o r . s c o r e ( X t e s t ) Estimation “en-line” e s t i m a t o r . p a r t i a l f i t (X, Y)
  10. 10. Vectorization Passer des donn´ees brutes `a la matrices X Pour le texte: compter les occurrences de mots - Donn´ees d’entr´ee: liste de documents (string) - Donn´ees de sortie: matrice num´erique from s k l e a r n . f e a t u r e e x t r a c t i o n . t e x t import H a s h i n g V e c t o r i z e r h a s h e r = H a s h i n g V e c t o r i z e r () X = h a s h e r . f i t t r a n s f o r m ( documents )
  11. 11. Fonctionalit´es Apprentissage supervis´e Arbres de d´ecision (Random-Forest, Boosted Tree) Mod`eles lin´eaires SVM Apprentissage non supervis´e Clustering Apprentissage de dictionnaire D´etection d’outliers S´election de mod`eles Validation crois´ee int´egr´ee Optimisation de param`etres
  12. 12. Quelques estimateurs http://scikit-learn.org/stable/auto_examples/plot_ classifier_comparison.html
  13. 13. Quelques estimateurs http://scikit-learn.org/stable/auto_examples/plot_ classifier_comparison.html
  14. 14. Clustering http://scikit-learn.org/stable/auto_examples/cluster/ plot_cluster_comparison.html
  15. 15. Scikit-learn http://scikit-learn.org Projet tr`es dynamique Bien document´e N´ecessite un peu de savoir-faire technique Facile `a int´egrer/adapter PS: Je cherche `a embaucher un ing´enieur @GaelVaroquaux

×