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.
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. 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. Choix technologiques
Python, what else?
Langage haut-niveau,
- interactif,
- facile `a debugger,
- d’application g´en´erale
´Ecosyst`eme tr`es dynamique
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. 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. 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. 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. 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. 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. 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