• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,640
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
23
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Atelier Apache MahoutMachine Learning pour les applications Java Jean-Baptiste Lemée22/11/2011 Michaël Figuière
  • 2. Speaker @jblemee java-freelance.fr Jean-Baptiste Lemee Java, JS, Scala NoSQL Agile
  • 3. Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQLSearch Engines
  • 4. Machine Learning
  • 5. Machine Learning Le Machine Learning est un sous-ensemble de l’Intelligence Artificielle Intelligence Artificielle Machine Learning (Apprentissage Artificiel)
  • 6. La nature des données Les données aléatoires sont par définition imprévisibles !
  • 7. La nature des données Les données générées par les utilisateurs se comportent généralement selon des patterns reconnaissables !
  • 8. Principaux algorithmes de Machine Learning• Recommandations Recommande des items à un utilisateur• Classification Classifie automatiquement des documents en apprenant à partir d’un ensemble déjà classifié• Clustering Découvre automatiquement des groupements parmi un ensemble de documents
  • 9. Recommandation - User based Amazon suggère des articles achetés par les clients similaires
  • 10. Recommandation - Item based Sur la page d’un article Amazon suggère des articles
  • 11. Similarités entre utilisateurs On constate ici que 1 2 les utilisateurs 1 et 2 ont des goûts similaires A B C D E F 3
  • 12. Exemples de cas d’usage de Recommandation• Conseiller des items aux clients sur un site d’e-commerce Augmentation du chiffre d’affaire• Conseiller des fonctionnalités aux utilisateurs La plupart des fonctionnalités sont méconnues• Filtrer et adapter le classement des résultats d’un moteur de recherche En se basant sur les clics des utilisateurs similaires, ...
  • 13. Classification Mails ‘classifiés’ en tant que spams par GMail
  • 14. Exemples de cas d’usage de Classification• Associer automatiquement des tags à des documents Ensemble de tags définis manuellement ou depuis Wikipedia• Extraire les documents suspicieux Spams, documents corrompus, ...
  • 15. ClusteringSujets tendances découverts par Google News
  • 16. Exemples de cas d’usage du Clustering• Trouver les sujets principaux dans un ensemble de documents News feeds, documents métiers, ...• Découvrir des usages typiques des utilisateurs Profilage des utilisateurs, ...
  • 17. NoSQL, Recherche et Machine Learning NoSQL, Machine Learning et Moteurs de Recherche sont complémentaires Machine Learning Moteurs de NoSQL Recherche
  • 18. Apache Mahout
  • 19. En quelques mots• Implémentation d’algorithmes de Machine Learning en Java Collection d’algorithme en expansion• La plupart disponibles en version MapReduce Utilisable avec de gros datasets• Encore jeune, mais en croissance rapide Démarré début 2009
  • 20. Documentation Aussi indispensable pour Mahout que l’est Lucene in Action pour Lucene !
  • 21. Exemple de RecommendationDataModel model = new FileDataModel(new File("data.csv"));UserSimilarity simil = new PearsonCorrelationSimilarity(model);UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, simil);List<RecommendedItem> recommendations = recommender.recommend(1, 1);
  • 22. Evaluation de la précision Ensemble des données disponibles Données utilisées Données utilisées pour pour le training évaluer la précision de l’algorithme
  • 23. Conclusion• Le Machine Learning apporte des fonctionnalités à forte valeur ajoutée Amélioration des revenus, de la productivité, de l’adoption• Mahout est en croissance rapide et devient un bon choix pour les applications Intégration facile aux applications métier• Les équipes fonctionnelles ne sont pas familières de ces technologies Une collaboration avec les équipes techniques est requise
  • 24. Questions / Réponses ? @jblemee @mfiguiere