Duchess France (Nov 2011) - Atelier Apache Mahout

Post on 26-May-2015

1.717 views 1 download

Tags:

Transcript of Duchess France (Nov 2011) - Atelier Apache Mahout

Atelier Apache Mahout

Machine Learning pour les applications Java

22/11/2011 Michaël FiguièreJean-Baptiste Lemée

Speaker

Jean-Baptiste Lemee

@jblemee

java-freelance.fr

Agile NoSQL

Java, JS, Scala

Speaker

Michaël Figuière

@mfiguiere

blog.xebia.fr

Search Engines NoSQL

DistributedArchitectures

Machine Learning

Machine Learning

Intelligence Artificielle

Machine Learning(Apprentissage Artificiel)

Le Machine Learning est un sous-ensemble de

l’Intelligence Artificielle

La nature des données

Les données aléatoiressont par définition

imprévisibles !

La nature des données

Les données générées par les utilisateurs se

comportent généralement selon des patterns reconnaissables !

Principaux algorithmes de Machine Learning

• Recommandations

• Classification

• Clustering

Recommande des items à un utilisateur

Classifie automatiquement des documents en apprenant à partir d’un ensemble déjà classifié

Découvre automatiquement des groupements parmi un ensemble de documents

Recommandation - User based

Amazon suggère des articles

achetés par les clients similaires

Recommandation - Item based

Sur la page d’un article Amazon

suggère des articles

Similarités entre utilisateurs

A B D E FC

1 2

3

On constate ici que les utilisateurs 1 et

2 ont des goûts similaires

Exemples de cas d’usage de Recommandation

• Conseiller des items aux clients sur un site d’e-commerce

• Conseiller des fonctionnalités aux utilisateurs

• Filtrer et adapter le classement des résultats d’un moteur de recherche

Augmentation du chiffre d’affaire

La plupart des fonctionnalités sont méconnues

En se basant sur les clics des utilisateurs similaires, ...

Classification

Mails ‘classifiés’ en tant que spams par GMail

Exemples de cas d’usage de Classification

• Associer automatiquement des tags à des documents

• Extraire les documents suspicieux

Ensemble de tags définis manuellement ou depuis Wikipedia

Spams, documents corrompus, ...

Clustering

Sujets tendances découverts par Google News

Exemples de cas d’usage du Clustering

• Trouver les sujets principaux dans un ensemble de documents

• Découvrir des usages typiques des utilisateurs

News feeds, documents métiers, ...

Profilage des utilisateurs, ...

NoSQL, Recherche et Machine Learning

NoSQL, Machine Learning et Moteurs de Recherche

sont complémentairesMachineLearning

Moteurs deRechercheNoSQL

Apache Mahout

En quelques mots

• Implémentation d’algorithmes de Machine Learning en Java

• La plupart disponibles en version MapReduce

• Encore jeune, mais en croissance rapide

Collection d’algorithme en expansion

Utilisable avec de gros datasets

Démarré début 2009

Documentation

Aussi indispensable pour Mahout que l’est Lucene in Action pour Lucene !

Exemple de Recommendation

DataModel 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);

Evaluation de la précision

Données utilisées pour le training

Données utilisées pour évaluer la précision del’algorithme

Ensemble des données disponibles

Conclusion

• Le Machine Learning apporte des fonctionnalités à forte valeur ajoutée

• Mahout est en croissance rapide et devient un bon choix pour les applications

• Les équipes fonctionnelles ne sont pas familières de ces technologies

Amélioration des revenus, de la productivité, de l’adoption

Intégration facile aux applications métier

Une collaboration avec les équipes techniques est requise

Questions / Réponses

?@mfiguiere

@jblemee