Upload
gaelvaroquaux
View
1.443
Download
5
Embed Size (px)
DESCRIPTION
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.
Citation preview
Scikit LearnApprentissage statistique en Python
Gael Varoquaux —
http://scikit-learn.org
Vision du projetL’apprentissage statistique pour tous
Pas de domaine d’application specifiquePas de prerequis en machine learning
Librairie logicielle de qualiteAPI pensees pour l’utilisateur
Developpement communautaireLicense BSD, contributeurs tres varies
Philosophie1. Keep it simple
Ne pas chercher a tout resoudre
2. Facilite d’utilisationBonne documentation
Facile a debugger
3. Efficacite numeriqueDans les limites de 1
4. Limiter les dependancesLa distribution est un probleme en soit
Choix technologiques
Python, what else?Langage haut-niveau,
- interactif,- facile a debugger,- d’application generaleEcosysteme tres dynamique
Choix technologiques
+ Numpy+ Scipy
calcul numerique, algebrelineaire, algorithmique sur graphe
numpy.array: conteneuruniversel de donnees structurees
Les outils des sciencesnumeriques sont sous-utilises
par la communaute “data”
Performancescikit-learn mlpy pybrain pymvpa mdp shogun
SVM 5.2 9.47 17.5 11.52 40.48 5.63LARS 1.17 105.3 - 37.35 - -Elastic Net 0.52 73.7 - 1.44 - -kNN 0.57 1.41 - 0.56 0.58 1.36PCA 0.18 - - 8.93 0.47 0.33k-Means 1.34 0.79 ∞ - 35.75 0.68
Optimisations algorithmiques et non bas niveau
Minimiser les copies des donnees
API: specifier un modele
Un concept central: l’estimateurInstancie sans les donneesMais en specifiant ses parametres
from s k l e a r n . n e i g h b o r s importK N e a r e s t N e i g h b o r s
e s t i m a t o r = K N e a r e s t N e i g h b o r s (n n e i g h b o r s =2)
API: entraıner un modele
Apprendre a partir de donneese s t i m a t o r . f i t (X, Y)
ou:X est un tableau numpy de forme
nobservations × ndescripteurs
y est un tableau numpy, entier ou flottantnobservations
API: utiliser un modele
Prediction: classification, regressionY 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, filtreX 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 densite, vraissemblancet 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)
Vectorization
Passer des donnees brutes a la matrices X
Pour le texte: compter les occurrences de mots- Donnees d’entree: liste de documents (string)- Donnees de sortie: matrice numeriquefrom 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 rh 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 )
Fonctionalites
Apprentissage superviseArbres de decision (Random-Forest, Boosted Tree)Modeles lineairesSVM
Apprentissage non superviseClusteringApprentissage de dictionnaireDetection d’outliers
Selection de modelesValidation croisee integreeOptimisation de parametres
Quelques estimateurs
http://scikit-learn.org/stable/auto_examples/plot_classifier_comparison.html
Quelques estimateurs
http://scikit-learn.org/stable/auto_examples/plot_classifier_comparison.html
Clustering
http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html
Scikit-learnhttp://scikit-learn.org
Projet tres dynamiqueBien documenteNecessite un peu de savoir-faire techniqueFacile a integrer/adapter
PS: Je cherche a embaucher un ingenieur
@GaelVaroquaux